리눅스 특정날짜 하위 디렉토리 파일 검색 출력 및 삭제 방법

개요

리눅스를 사용하면서 오래된 파일들중 특정 날짜만 검색해서 삭제를 하고 싶다. 그것도 하위디렉토리도 함께 말이다. 어떻게 해야될까? 일일이 찾아다니면서 파일을 삭제 할수 없는 노릇이다.

어느세월에 그 수많은 파일들을 일일이 삭제할수있을까.

리눅스 특정날짜 하위디렉토리 검색 및 삭제

방법은 find 와awk , grep 등을 이용하여 찾을수있다. 방법은 아래와 같다.

하위디렉토리까지 삭제

find /root/aaa/home/pstree/ -ls | awk '{print $8, $9, $10, $11}' | grep "7월 17 2014" | awk '{print $4}' | xargs rm -f

위의 명령어를 하나씩 살펴보도록 하자.

find 를 이용해서 /root/aaa/home/pstree/ 디렉토리를 ls 로 이용해서 출력한다.

awk 는 일종의 프로그래밍 언어와 비슷하지만 정확한 의미는 패턴의 검색과 조작을 나타낸다. 때문에 뒤에나타는 ‘{print $8, $9, $10, $11}’ 의미는 ls 에서 출력되는 열단위 4개를 뽑아서 보여준다는 말이 된다.

awk 에 대한 자세한 의미는 알고 싶으면 이전포스트인 [리눅스 awk 명령어] 를 참고하면 된다.

grep 은 파일 전체를 뒤져서 정규표현식에 대응하는 모든 행을 출력한다. “7월 17 2014” 는 2014년 7월 17일에 해당되는 열을 출력하게 된다.

마지막 부분은 xargs 은 표준입력으로 부터의 명령어라인을 실행 한다는 의미이다. 이렇게 얘기하면 뭔지 잘 모르지만 예를 들어보면, xargs rm -f 명령어를 실행하였을경우, 화면에 출력된 결과를 삭제한다 라는 의미다. 보통 find 와 조합해서 사용하는게 일반적이다.

xargs 에 대한 자세한 내용은 이전포스팅를 참고하면 된다.

리눅스는 하면할수록 매력적인거 같다. 오늘도 실제로 사용하던 명령어이지만 다시한번 기억을 되살라지는 마음으로 포스팅을 해봤다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다