次のコマンドチェーンがあります。
find . -print | grep php | xargs grep 'eval' -sl | xargs wc -l | grep ' [1-2][0-9] '
これは私に次のような結果を与えます:
14 ./includes/js/calendar/lang/vgju.php
18 ./includes/phpInputFilter/default.php
14 ./includes/Archive/eula.php
18 ./media/system/js/json.php
ファイルは感染したPHPファイルですが、チェーンを使用して削除したいと思います。どうすればいいですか?
答え1
|xargs rm -f
findコマンドを使用してこれらの操作をすべて実行できますが、そのコマンドに追加するだけです。
これはその姿です。
find . -print | grep php | xargs grep 'eval' -sl | \
xargs wc -l | grep ' [1-2][0-9] ' | \
cut -f 2 -d ' ' | xargs rm -f
xargs rm
ファイル名に特殊文字がないことがわかっているので、ここでコマンドが機能します。ファイル名に空白がある場合は機能しますxargs -d '\n' rm -f
(Linuxのみ)。