.php、.xml ファイルを一覧表示して削除する必要があります。そのためにfind
コマンドを使用しています。
リストへ:
find . -type f -name \*.php -print0
削除するには:
find . -type f -name \*.php -print0 | xargs -0 rm -r
2 回実行しますfind
。最初のコマンドの結果を保存し、2 番目に再利用することは可能ですか?
ありがとう。
答え1
find . -type f -name '*.php' -print0 | tee list | tr \\0 \\n
xargs -r0 rm -f < list
これは、削除を決定する前にリストを確認したい場合を想定しています。確認したくない場合は、次のようにするだけです。
find . -name '*.php' -type f -print -delete
(、、は-print0
標準-delete
ではありません-r
が-0
、GNU実装ではサポートされています)
また、 は比較的安全ですが、最初の解決策では、とコマンドfind -delete
を実行する間の間に、誰かがディレクトリの名前を機密領域へのシンボリックリンクに変更し、意図しないファイルを削除させられる可能性があることにも注意してください。 を2 回実行し、2 回目に を使用すると、これを回避できます。find
xargs
find
-delete
答え2
ファイルが必要なので.php
、コマンドは次のようになります。.xml
find
find . \( -name '*.php' -o -name '*.xml' \) -type f -print -exec rm {} +
ファイルのチャンクごとに 1 回だけ使用するように指示+
します。 を使用した場合は、ファイルごとに1 つのコマンドを実行します。find
rm
\;
rm