如何删除目录中的所有文件example/
而不是.env
文件?
或许
rm -f !(.env) example/
?
答案1
如果您在shell中设置extglob
和shell 选项dotglob
bash
shopt -s extglob dotglob
那么该模式example/!(.env)
将匹配example
目录中不是.env
.
请注意,我们需要设置dotglob
为允许通配模式匹配隐藏名称。
使用
rm -f example/!(.env)
会尝试删除那些匹配的名称。
如果该模式扩展到太多名称,您将收到“参数列表太长”错误。在一个简单的循环中运行它是一个替代解决方案:
for name in example/!(.env); do rm -f "$name"; done
相关问题: