使用sudo rm -r时,如何删除除以下文件外的所有文件?
textfile.txt
backup.tar.gz
script.php
database.sql
info.txt
使用sudo rm -r时,如何删除除以下文件外的所有文件?
textfile.txt
backup.tar.gz
script.php
database.sql
info.txt
当前回答
我正在寻找的答案是运行脚本,但我希望避免删除脚本本身。因此,如果有人正在寻找类似的答案,请执行以下步骤。
创建一个.sh文件并编写以下代码:
cp my_run_build.sh ../../
rm -rf * cp
../../my_run_build.sh .
/*amend rest of the script*/
其他回答
不要直接执行命令,请将所需文件移动到当前目录之外的临时目录。然后使用rm *或rm -r *删除所有文件。
然后移动所需的文件到当前目录。
rm !(textfile.txt|backup.tar.gz|script.php|database.sql|info.txt)
extglob(扩展模式匹配)需要在BASH中启用(如果它没有启用):
shopt -s extglob
因为没人提过
把不想删除的文件复制到安全的地方 删除所有文件 将复制的文件移回原位
如果你正在使用zsh,我强烈推荐。
rm -rf ^file/folder pattern to avoid
与extended_glob
setopt extended_glob
rm -- ^*.txt
rm -- ^*.(sql|txt)
我更喜欢使用子查询列表:
rm -r `ls | grep -v "textfile.txt\|backup.tar.gz\|script.php\|database.sql\|info.txt"`
-v,——invert-match选择不匹配的行 \ |分隔符