【发布时间】:2015-06-25 15:11:43
【问题描述】:
我需要使用 SSH 来查找所有包含某个字符串(恶意软件)的文件并删除这些文件。
这是我用来查找和显示这些恶意软件文件列表的命令:
find * -name '*.php' -exec grep -l "return base64_decode(" {} \;
我得到一个这样的列表:
我想删除所有这些文件(不仅仅是显示它们的列表)。
基本上是“查找所有包含字符串的文件,然后删除这些文件”。
【问题讨论】:
我需要使用 SSH 来查找所有包含某个字符串(恶意软件)的文件并删除这些文件。
这是我用来查找和显示这些恶意软件文件列表的命令:
find * -name '*.php' -exec grep -l "return base64_decode(" {} \;
我得到一个这样的列表:
我想删除所有这些文件(不仅仅是显示它们的列表)。
基本上是“查找所有包含字符串的文件,然后删除这些文件”。
【问题讨论】:
您可以说 pipe xargs rm 以便删除给定的文件名:
find * -name '*.php' -exec grep -l "return base64_decode(" {} \; | xargs rm
也可以存储find的当前输出,然后循环执行rm <file>的内容:
find ... > file
while IFS= read -r file
do
rm "$file"
done < file
【讨论】:
find | xargs rm 还是带有循环的那个?
find | xargs rm 我不知道如何使用其他版本/代码,哈哈 :)
find ... 并输出到一个文件。然后,使用 while 循环遍历文件。