본문 바로가기
일하는 중에

find and remove, 찾아서 지우기

by likebnb 2014. 7. 28.

한 두개 파일이나 디렉토리라면 별일 아니겠지만 

하드디스크 전역에 숨어있는 '일정한 패턴'의 파일들을 일일이 찾아서 지운다는 것은 비효율적이다.


리눅스 계열의 OS들은 쉘에서 파이프라는 메카니즘을 제공한다.

파이프란 하나의 명령을 수행한 결과를 다음 명령의 입력값으로 보내는 것을 말한다.


이 파이프 메카니즘을 활용하면 찾아서 지우기가 가능한데

다음과 같이 find와 xargs 그리고 rm 유틸리티를 파이프로 연결해서 사용하면 된다.


find / -name '찾고 싶은 파일의 패턴' | xargs rm -rf


한 발 더 나아가 find에서 여러 조건을 연결하면 더욱 강력한 파일 찾기가 가능하므로 

다음의 조건 연산자들을 기억해두면 좋겠다.


-not, -and, -or


마지막으로 다음은 아이폰에서 한국어와 영어를 제외한 언어팩들을 찾아서 지우는 예제이다.


find / -name '*.lproj' 

-and -not -name 'ko.lproj' 

-and -not -name 'Korean.lproj' 

-and -not -name 'en*.lproj' 

-and -not -name 'English.lproj' 

|xargs rm -rf