【问题标题】:SSH command to find and delete all files that contain a stringSSH 命令查找和删除所有包含字符串的文件
【发布时间】:2015-06-25 15:11:43
【问题描述】:

我需要使用 SSH 来查找所有包含某个字符串(恶意软件)的文件并删除这些文件。

这是我用来查找和显示这些恶意软件文件列表的命令:

find * -name '*.php' -exec grep -l "return base64_decode(" {} \;

我得到一个这样的列表:

我想删除所有这些文件(不仅仅是显示它们的列表)。

基本上是“查找所有包含字符串的文件,然后删除这些文件”。

【问题讨论】:

    标签: unix ssh grep find


    【解决方案1】:

    您可以说 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
    

    【讨论】:

    • 很高兴看到这篇文章,@AlboBest :) 出于好奇:您使用的是哪个版本,find | xargs rm 还是带有循环的那个?
    • 我用过find | xargs rm 我不知道如何使用其他版本/代码,哈哈 :)
    • @AlboBest 好吧,也许它没有得到很好的解释。这里的事情是说find ... 并输出到一个文件。然后,使用 while 循环遍历文件。
    猜你喜欢
    • 2014-10-20
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 2020-07-27
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    相关资源
    最近更新 更多