我有类似的东西:
find . -type f -print0 | xargs -0 file | grep Matroska | cut -d: -f 1-1 | xargs rm
我想要这样的东西:
find . -type -f -filemagic "Matroska" -delete
答案1
您可以使用选项bash
在内部运行并在 shell 内运行,例如: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
是 can be -ls
or -print0
or more 谓词。