私は次のようなものがあります:
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
以上になる可能性があります。