"find -delete"를 통해 삭제된 파일 목록 가져오기

"find -delete"를 통해 삭제된 파일 목록 가져오기

이 명령은 제공된 이름과 일치하는 모든 파일을 나열합니다.

find . -iname .DS_Store

그런데 해당 매개변수를 사용하면 -delete삭제된 파일 목록이 표시되지 않습니다. 방금 삭제되었습니다.

| xarg ..또는 로 복잡하게 만들지 않는 것이 좋습니다 -exec rm {}. 삭제된 파일을 보는 데 사용할 수 있는 매직 플래그가 있습니까 find . -iname .DS_Store -delete?

print0추신: 플래그를 제거하지 않고도 명령을 실행할 수 있다는 것을 알고 있지만 작업을 수행할 수 있는 유사한(인쇄하기에는 보기 흉하지만) 것을 찾고 있습니다 .

답변1

-print명령 끝에 다음을 추가하면 됩니다.

find . -name .DS_Store -delete -print

찾은 파일의 경로 이름이 출력됩니다.

이것이 macOS 시스템(또는 BSD 시스템)에 있는 경우 find기본 구현을 사용하여 -delete조건자는언제나반품진짜, 이는 규칙이 -print항상 유효함을 의미합니다. 이는 위의 명령이 성공적으로 제거되었는지 여부에 관계없이 발견된 모든 경로 이름을 인쇄한다는 의미입니다. -deleteGNU의 조건자가 find반환 됩니다.잘못된이름을 삭제할 수 없는 경우.

macOS 또는 BSD 시스템을 사용하고 있고 이것이 중요한 경우 다음을 사용하십시오.

find . ! -type d -name .DS_Store -exec rm {} \; -print

대신에. 여기서 rm지정된 이름을 삭제하지 못하면 0이 아닌 종료 상태가 반환되며 이는 경로 -print이름이 적용되지 않음을 의미합니다. 디렉터리가 아닌 파일만 삭제되기 ! -type d때문에 rm(사용하지 않을 때 ) 추가했습니다 rm -r.

관련 정보