use*_*964 0 linux bash wildcards
我 cd 到我的主目录并输入
ls *bash*
Run Code Online (Sandbox Code Playgroud)
期望它会显示包含“bash”的文件列表。然而事实并非如此。
同时,键入
ls .bash*
Run Code Online (Sandbox Code Playgroud)
作品。
根据文档,*代表任何字符,对吗?但.在这种情况下,它似乎并不代表。怎么了?
该dotglob外壳选项控制这样的:
$ shopt -s dotglob
$ ls *bash*
.bash_history .bash_logout .bashrc
Run Code Online (Sandbox Code Playgroud)
默认情况下不启用它,可能是作为可用性/安全措施,因为大多数最终用户不必担心点文件,并且可以很容易地意外删除关键的主目录文件(例如.config, .ssh)。