"파일" 도구를 "찾기"에 대한 조건자로 바꾸는 방법은 무엇입니까?

"파일" 도구를 "찾기"에 대한 조건자로 바꾸는 방법은 무엇입니까?

나는 다음과 같은 것을 가지고 있습니다 :

find . -type f -print0  | xargs -0 file | grep Matroska | cut -d: -f 1-1 | xargs rm

나는 다음과 같은 것을 원합니다 :

find . -type -f -filemagic "Matroska" -delete

답변1

bash옵션을 사용하여 내부 및 셸 내에서 실행할 수 있습니다 . 예를 들면 다음과 같습니다.find-execfile

find . -type f -execdir bash -c 'file "$0" | grep -q Matroska && rm "$0"' {} \;

답변2

-exec실제로 술어로 사용될 수 있습니다. find(1):

Execute command; true if 0 status is returned.

따라서 이 예는 다음과 같습니다.

find . -type f -exec sh -c 'file "$0" | grep -q Matroska' '{}' ';' -and -delete

분명히 대체 -delete는 술어가 될 수 있거나 -ls-print0이상이 될 수 있습니다.

관련 정보