在第一个命令中,te
不会删除根目录(即)。在第二个命令中,我想添加一个例外,即不删除类型.log
最终导致破坏源目录的文件。为什么这些命令有所不同?在不删除原始目录的情况下添加异常的正确方法是什么?
user:~/mnt/test$ rm -rf te/*
user:~/mnt/test$ ls
no.tar te
user:~/mnt/test$ rm -rf te/* !(*.log)
user:~/mnt/test$ ls
no.tar
该extglob模式 !(*.log)
相匹配的目录te
也如同它的名字不是结束.log
。要删除te
除带有扩展名的文件以外的每个文件log
,你应该执行以下操作:
shopt -s dotglob # match hidden files too
echo rm -rf te/!(*.log)
echo
如果对输出感到满意,请删除。