나는 다음과 같은 것을 가지고 있습니다 :
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
-exec
file
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
이상이 될 수 있습니다.