特定のキーワードに一致するファイルがないかファイルシステムをスキャンして、それらを削除しようとしています。私はこれをこれまでに持っています:
find . -iregex '.*.new.*' -regex '.*.pdf*'
次に、このコマンドの結果を削除コマンド(rm
など)にパイプする方法
1つの方法は、ファイルのリストを展開し、それを引数としてrmに渡すことです。
$ rm $(find . -iregex '.*.new.*' -regex '.*.pdf*')
**スペースや改行があるファイル名では失敗します。
次のように、xargsを使用してrmコマンドを作成できます。
$ find . … … | xargs rm
**改行またはスペースでも失敗します
または、find
にコマンドrmを実行するよう依頼します。
$ find . … … --exec rm {} \;
ただし、最善の解決策は、検索で直接削除オプションを使用することです。
$ find . -iregex '.*.new.*' -regex '.*.pdf*' -delete