我有一台 vps 服务器受到病毒攻击,不断注入许多隐藏文件。如何删除该文件夹的目录和子目录中的所有隐藏文件public_html
,除了两个文件:.htaccess
和.user.ini
?
我尝试过以下Linux命令,但没有成功:
find "public_html" -type f -name '.*' -delete !(".htaccess"|".user.ini")
答案1
正如人们已经在评论中告诉你的那样,这是一个非常糟糕的主意。您永远无法确定您已经清理了所有内容,此类操作的标准程序是擦除服务器并从干净的备份中恢复。
也就是说,您的find
命令不起作用的原因是因为find
不理解扩展的通配模式,例如!(".htaccess"|".user.ini")
.相反,您需要使用find
自己的语法:
find . -type f -name '.*' ! -name .htaccess -a ! -name .user.ini -delete
或者
find . -type f -name '.*' ! \( -name .htaccess -o -name .user.ini \) -delete