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 .*\n
Run Code Online (Sandbox Code Playgroud)\n\n(摘自我之前对 Ask Ubuntu 的回答。)
\n 归档时间: |
|
查看次数: |
1405 次 |
最近记录: |