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