Fra*_*lin 5 bash wildcards dot-files
rm -rf .*只会不会因为rm拒绝删除.而可怕地结束..。
如何从全局模式中排除这些特殊目录?
这没有解决,dotglob因为我只想匹配以点开头的文件而不是所有文件。
对于bash,设置GLOBIGNORE特殊变量是一些非空值足以使其在扩展全局变量时.忽略..。来自Bash 文档:
\n\n\nshell
\nGLOBIGNORE变量可用于限制与模式匹配的文件名集。如果GLOBIGNORE设置,则将GLOBIGNORE从匹配列表中删除也与其中模式之一匹配的每个匹配文件名。如果nocaseglob设置了该选项,则执行与 中的模式匹配时GLOBIGNORE不考虑大小写。当设置\n且不为空时,文件名.和..始终被忽略 。GLOBIGNORE但是,设置GLOBIGNORE为非空值具有启用 dotglob shell 选项的效果,因此以\xe2\x80\x98.\xe2\x80\x99 开头的所有其他文件名都将匹配。
如果我们将其设置为.:..,则.和都..将被忽略。由于将其设置为任何非空也会得到此行为,因此我们不妨将其设置为.
所以:
\n\nGLOBIGNORE=.\nrm -rf .*\nRun Code Online (Sandbox Code Playgroud)\n\n(摘自我之前对 Ask Ubuntu 的回答。)
\n| 归档时间: |
|
| 查看次数: |
1405 次 |
| 最近记录: |