我想知道在操作期间是否以及如何可以跳过某些目录rm -rf
。
例如,该位置包含以下子文件夹(实际上这只是示例):
foo
bar
elf
qrs
在我的脚本在此目录中执行期间rm -rf *
,我想知道是否可以(例如)跳过删除elf
.
通常,我可以将每个目录传递给命令rm -rf foo bar qrs
,但是我的情况是,因为这是在许多不同系统的脚本中,所以每个系统都会有不同的文件夹。例如,系统 1 可能包含这些:
foo
bar
elf
qrs
虽然 system2 可能包含这些:
ubt
dbn
arc
elf
gnt
我希望rm -rf
两者的命令相同;删除除 之外的所有内容elf
。
这有可能吗?
先感谢您。
答案1
根据这没有内置的排除功能rm
。不过,本文详细介绍了使用一些 shell 命令来实现相同结果的多种方法。
第一个似乎最适合您:
删除除名为 important.txt 的文件之外的所有文件:
rm !(important.txt)
答案2
可能的解决方案之一:
find -type d ! -name "elf" -delete