/SSH

2012-02-24 4 views
1

経由のルートディレクトリにあるすべてのファイルによって置き換え見つける私はちょうど私のウェブサイトがハッキングしまったことに気づいた、すべての.phpファイルは、文字列はので、すべてのファイルで同じであるライン1上をbase64エンコード文字列を持っています.../SSH

ルートディレクトリ全体を検索して削除するにはどうすればよいですか?

答えて

4

試してみてください。

find /path/to/dir -type f -name '*.php' -exec sed -i '/string-to-remove/{1d;}' '{}' \; 

編集:

  • は、ファイルを.PHPするために、これを制限する-name '*.php'を追加しました。
+0

が「1dは」私は削除したい文字列であるPHP –

+0

に制限する、あまりにもそこにある '-name'を追加したい場合があります?sedをマッチングディレクティブを追加しましたか – Dan

+0

'find 'コマンドに' -name' * .php''を追加して、他のすべてのものを削除しないことをお勧めします。そして、代わりに 'sed'コマンドで無差別に最初の行を削除するので、特定の文字列を検索(OPはそれがすべてのファイルで同じだと言う)と一致するものが見つかった場合にのみ削除します。 (さらに良いことに、すべてのファイルの1行目とのみ一致します)。 –