删除除特定文件之外的所有隐藏文件

删除除特定文件之外的所有隐藏文件

我有一台 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

相关内容