adsense_in_article_test


[bash: grep, awk] 특정 timestamp를 가진 파일 찾아 지우기 리눅스 bash script

파일을 지우려면 우선 해당 파일명을 찾아야 한다. ls -l 명령으로 timestamp가 표시되도록 한 후 awk로 파일명을 골라내자.

예를 들어 5월 24일이 찍힌 파일을 찾으려면 이렇게 할 수 있다.

ls -l | grep "^\-r" | grep "May 24" | awk '{print $9}'

퍼미션 표시에서 (디렉토리나 링크가 아닌) 파일은 -rwxr--r-- 이런 식으로 나올 테니 "-r"로 시작하는 항목만 grep으로 고른다.('-'가 grep에서 연산자로 해석되지 않도록 '\-' 이런식으로 쓰자)

거기서 원하는 timestamp가 있는 항목을 골라낸다.

거기서 파일명이 표시되는 위치인 9번째 항목(field)을 awk 명령으로 골라낸다.

자, 이제 지워야겠으니 위의 명령을 역따옴표(`)로 묶어서 rm 명령에 넘기자.

rm `ls -l | grep "^\-r" | grep "May 24" | awk '{print $9}'`



덧글

  • costzero 2012/11/17 00:05 # 답글

    도스명령어에서도 이런 걸 찾고 있는데 그다지 많지 않더군요.
    목록이나 서브에 있는 파일명을 만들어내는 간단한 명령어는 기획용으로 사용하고 있습니다.
  • 반달가면 2012/11/17 22:01 #

    리눅스 shell이 처음엔 좀 복잡해 보여도 익숙해지면 꽤나 많은걸 할 수 있습니다. 그에 비하면 도스는 아무래도 빈약한 편이지요.
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.



통계 위젯 (화이트)

169516
2895
2275627

2019 대표이글루_IT

B-Side