찾기 결과를 다른 명령으로 연결

찾기 결과를 다른 명령으로 연결

파일 시스템에서 특정 키워드와 일치하는 파일을 검색한 다음 삭제하려고 합니다. 지금까지 나는 이것을 가지고 있습니다 :

find . -iregex '.*.new.*' -regex '.*.pdf*'

그런 다음 이 명령의 결과를 삭제 명령으로 어떻게 전송할 수 있습니까(예 rm: )

답변1

한 가지 방법은 파일 목록을 확장하여 rm에 인수로 전달하는 것입니다.

$ rm $(find . -iregex '.*.new.*' -regex '.*.pdf*')

**파일 이름에 공백이나 개행 문자가 포함되어 있으면 실패합니다.

xargs를 사용하여 다음과 같이 rm 명령을 작성할 수 있습니다.

$ find . … … | xargs rm

** 개행이나 공백으로도 실패합니다.

find또는 더 나은 방법은 rm 명령을 요청하는 것입니다 .

$ find . … … -exec rm {} \;

그러나 가장 좋은 해결책은 find에서 직접 삭제 옵션을 사용하는 것입니다.

$ find . -iregex '.*.new.*' -regex '.*.pdf*' -delete

관련 정보