개요
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의 우아한 프로그래밍
여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 주시면 감사하겠습니다.
'OS > Linux' 카테고리의 다른 글
[Linux] touch 파일 생성하기 (0) | 2018.05.09 |
---|---|
[Linux] mv 파일 및 디렉토리 이동 (0) | 2018.05.09 |
[Linux] find 로 파일 검색하기 (0) | 2018.05.05 |
[Linux] cp 또는 mv 로 파일 강제로 덮어쓰기 (0) | 2018.05.03 |
[Linux] cp 파일 및 디렉토리 복사 (0) | 2018.05.03 |