Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix SSH命令查找和删除包含字符串的所有文件_Unix_Ssh_Grep_Find - Fatal编程技术网

Unix SSH命令查找和删除包含字符串的所有文件

Unix SSH命令查找和删除包含字符串的所有文件,unix,ssh,grep,find,Unix,Ssh,Grep,Find,我需要使用SSH查找包含特定字符串(恶意软件)的所有文件并删除这些文件 这是我用来查找和显示这些恶意软件文件列表的命令: find * -name '*.php' -exec grep -l "return base64_decode(" {} \; 我得到了这样一份清单: 我想删除所有这些文件(而不仅仅是显示它们的列表) 基本上是“查找包含字符串的所有文件,并删除这些文件”。您可以说pipexargs rm,以便删除给定的文件名: find * -name '*.php' -exec gr

我需要使用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
的内容:

find…>文件
而IFS=read-r文件
做
rm“$file”
完成<文件

很高兴读到这篇文章,@AlboBest:)出于好奇:你用的是哪个版本,是
find | xargs rm
还是带循环的版本?我用的是
find | xargs rm
我不知道如何使用其他版本/代码,哈哈:)@AlboBest好的,可能解释得不太清楚。这里要说的是
find…
,然后输出到一个文件中。然后,使用
while
循环遍历文件。
find ... > file
while IFS= read -r file
do
    rm "$file"
done < file