본문 바로가기

IT 기술

시스템 내의 특정파일들을 검색하여 삭제하는 방법

반응형

find로 찾은 파일에 특정명령어를 수행할 수 있다고 앞서 말씀드린 바가 있습니다. 아래의 예는 test01이라는 계정사용자의 홈디렉토리내에 존재하는 *.bak파일을 찾아서 모두 삭제한 예입니다. 이 예는 디스크공간 부족시에 백업파일을 삭제하고자 할 때에 사용하는 방법입니다. 하지만 백업파일의 형태가 *.bak가 아닌 경우가 있으므로 실무에 적용하실 경우에는 지정하는 파일형식에 주의하시기 바랍니다.

먼저 “find ~test01 -name *.bak -print”로 test01사용자의 홈디렉토리에 존재하는 *.bak파일을 찾아 보았습니다. 결과 모두 3개의 파일이 존재함을 확인 하였습니다. 확인한 다음 “find ~test01 -name *.bak -exec rm -f {} \;”명령어로 test01사용자의 홈디렉토리내에 존재하는 *.bak파일을 모두 삭제하였습니다. 여기서 “-exec rm -f {}”에서 -exec는 찾아진 파일들을 모두 뒤에 나오는 명령어(rm -f {})로 실행한다는 의미이며 {}는 찾아진 3개의 파일들이 하나씩 차례대로 치환됨을 의미합니다. 즉, 위의 “-exec rm -f {}”는 아래와 같은 3개의 명령어가 차례대로 실행된 것입니다.  

rm -f /home/test01/www/tesfile1.bak

rm -f /home/test01/www/tesfile2.bak

rm -f /home/test01/www/tesfile3.bak

만약 찾아진 파일갯수가 100개였다면 위의 명령어가 100번 실행되었을 것입니다.

여기서 중요한 것을 다시한번 말씀드린다면 -exec는 찾은 파일들을 대상으로 뒤에나오는 명령어를 실행하라는 의미이며 {}는 찾아진 파일들을 하나씩 대입됨을 의미합니다. 그리고 찾아진 파일의 개수만큼 -exec뒤의 명령어가 실행됩니다. find명령어의 꽃이 -exec의 사용에 있으며 이것을 사용하지 못한다면 find로는 파일찾기기능 이외의 사용은 하지 못합니다.

반응형

'IT 기술' 카테고리의 다른 글

윈도우의 구조  (0) 2012.01.25
운영체제의 이해  (0) 2012.01.25
특정 UID 소유의 모든 파일 찾기  (0) 2012.01.25
find 명령어 사용법  (0) 2012.01.18
특정일 이후에 생성된 파일을 찾고 싶은가요?  (0) 2012.01.18