使用sudo rm -r时,如何删除除以下文件外的所有文件?

textfile.txt
backup.tar.gz
script.php
database.sql
info.txt

当前回答

使文件不可变。即使root用户也不允许删除它们。

chattr +i textfile.txt backup.tar.gz script.php database.sql info.txt
rm *

所有其他文件都已删除。 最终你可以将它们重置为可变的。

chattr -i *

其他回答

使文件不可变。即使root用户也不允许删除它们。

chattr +i textfile.txt backup.tar.gz script.php database.sql info.txt
rm *

所有其他文件都已删除。 最终你可以将它们重置为可变的。

chattr -i *

假设具有这些名称的文件存在于目录树中的多个位置,并且您希望保存所有这些文件:

find . -type f ! -regex ".*/\(textfile.txt\|backup.tar.gz\|script.php\|database.sql\|info.txt\)" -delete

我正在寻找的答案是运行脚本,但我希望避免删除脚本本身。因此,如果有人正在寻找类似的答案,请执行以下步骤。

创建一个.sh文件并编写以下代码:

    cp my_run_build.sh ../../ 
    rm -rf * cp  
    ../../my_run_build.sh . 
    /*amend rest of the script*/

因为没人提过

把不想删除的文件复制到安全的地方 删除所有文件 将复制的文件移回原位

我相信你可以使用

rm -v !(filename)

除了文件名,所有其他文件将删除在该目录中,并确保您正在使用它