OS/Linux

[Linux] find 로 파일 찾아서 지우기

Peter Ahn 2018. 5. 8. 18:30
반응형

 

개요

 

find 명령어로 파일을 검색하는 방법은 이전 포스팅에서 소개드렸습니다.

[Linux] find 로 파일 검색하기

 

이번 포스팅에서는 검색된 파일들을 지우는 방법을 소개해드리겠습니다.

이 방법을 이용하면 특정 조건을 만족하는 파일들을 찾아서 지우는 것이 가능합니다.

 

예를들면 확장자가 "txt" 인 파일들을 검색하여 지울 수도 있구요, 파일명이 "test"로 시작하는 파일들만 찾아서 지울 수도 있습니다.

 

사용법

 

find PATH [-options] -exec rm {} \;

 

PATH: 검색을 수행할 디렉토리 (해당 디렉토리를 포함한 하위 디렉토리가 검색 대상이 됩니다)

맨 뒤에 \; 는 오타가 아닙니다. 꼭 붙여주세요!

-exec 명령어는 맨 뒤에 ; 까지 argument 로 취하기 때문에 escape 시켜서 넣어주는 것입니다.

 

find . -type f -exec rm {} \;

 

위 명령어의 의미는 지정된 현재디렉토리(.) 기준으로 모든 파일(디렉토리 제외)들을 삭제하는 명령어입니다.

원하는 경로를 설정하면 해당 경로 하위의 모든 디렉토리가 대상이 되기 때문에 되도록이면 root path (/) 를 지정하지 않도록 합시다.

실제 사용할 때는 아래 예제와 같이 -name, -mtime 등의 옵션으로 특정 조건을 만족하는 파일들을 지울 때 사용하면 유용하게 사용할 수 있습니다.

 

 

예제

 

ex) 현재 디렉토리 하위에서 확장자가 "txt" 인 파일 모두 삭제

[root@peterdev test]# find . -type f -name "*.txt" -exec rm {} \;

 

ex) 현재 디렉토리 하위에서 확장자가 "test"로 시작하는 모든 파일 삭제

[root@peterdev test]# find . -type f -name "test*" -exec rm {} \;

 

 

ex) 현재 디렉토리 하위에서 생성된지 30일 이상 된 파일만 삭제

[root@peterdev test]# find . -ctime +30 -type f -exec rm {} \;

 

 

ex) 현재 디렉토리 하위에서 크기가 500 kbyte 이상인 파일만 삭제

[root@peterdev test]# find . -size +500k -type f -exec rm {} \;

 

 

 

 

 

-Peter의 우아한 프로그래밍

여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 주시면 감사하겠습니다.

 

 

반응형