Linux

刪除除特定文件外的所有隱藏文件

  • January 18, 2021

我有一個被病毒攻擊的 vps 伺服器,它不斷注入許多隱藏文件。如何刪除文件夾的目錄和子目錄中的所有隱藏文件public_html,除了兩個文件:.htaccess.user.ini

我嘗試了以下 Linux 命令,但沒有成功:

find "public_html" -type f -name '.*' -delete !(".htaccess"|".user.ini")

正如人們已經在評論中告訴你的那樣,這是一個非常糟糕的主意。你永遠不會確定你已經清理了所有東西,這樣的標準過程是擦除伺服器並從乾淨的備份中恢復。

也就是說,您的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

引用自:https://unix.stackexchange.com/questions/629729