類似しているが異なる名前を持つ何千ものファイルを効率的に削除します

類似しているが異なる名前を持つ何千ものファイルを効率的に削除します

名前は似ているが末尾が異なる何千ものファイルを削除する必要があります。これらのファイルは、クライアントの共有ホスティングを攻撃し、複数の WordPress サイトに感染したマルウェアによって作成されました。cPanel ファイル マネージャーでは一度に多数のファイルを削除できないため、代わりに SSH を使用しています。

ファイルはすべてwork.php.xxxx「 x 」という名前が付けられ、x は 0 から 9999 までの数字を表します (つまり、「work.php.2048」)。これらはすべて 1 つのフォルダー内にあります。

それらを一括して削除できる SSH コマンドはありますか?

これは、提案された重複とは異なります。すべてのファイルは .php 拡張子の後に固有の末尾を持つため、その問題に対する提案された解決策は機能しません。

答え1

希望する結果を確実に得るために、この操作を 2 つの手順で実行することをお勧めします。まず、ファイルを空のフォルダーに移動します。

user@linux:/.../somefolder#                 cd [TargetFolder]
user@linux:/.../TargetFolder#               mkdir DeleteFolder
user@linux:/.../TargetFolder#               find ./ -regex './work.php.[0-9][0-9][0-9][0-9]' -exec mv {} DeleteFolder/ \;
user@linux:/.../TargetFolder/DeleteFolder#  cd DeleteFolder
user@linux:/.../TargetFolder/DeleteFolder#  ls -l *

DeleteFolder に削除したいファイルのみが含まれている場合は、次の操作を行います。

user@linux:/.../TargetFolder/DeleteFolder#  rm work.php.[0-9][0-9][0-9][0-9]

rm work.php.[0-9][0-9][0-9][0-9]1 ステップで実行したい場合は、ターゲット フォルダー内で使用することもできます。私は個人的には、使用時に非常に慎重なのでrm、2 ステップ方式を使用します。

関連情報