検索結果を別のコマンドにリンクする

検索結果を別のコマンドにリンクする

ファイルシステムで特定のキーワードに一致するファイルを検索して削除しようとしています。これまで私はこれを持っています:

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

関連情報