如何删除目录中的所有文件并保留 .env?

如何删除目录中的所有文件并保留 .env?

如何删除目录中的所有文件example/而不是.env文件?

或许 rm -f !(.env) example/

答案1

如果您在shell中设置extglob和shell 选项dotglobbash

shopt -s extglob dotglob

那么该模式example/!(.env)将匹配example目录中不是.env.

请注意,我们需要设置dotglob为允许通配模式匹配隐藏名称。

使用

rm -f example/!(.env)

会尝试删除那些匹配的名称。

如果该模式扩展到太多名称,您将收到“参数列表太长”错误。在一个简单的循环中运行它是一个替代解决方案:

for name in example/!(.env); do rm -f "$name"; done

相关问题:

相关内容