是否有用于更改目录的 bash 通配符?

是否有用于更改目录的 bash 通配符?

当使用 Bash 命令行时,我可以使用以下方式更改到目录...

cd /volumes

但是我想输入...

cd /vol*

但那不起作用。有没有办法使用通配符来浏览目录?

答案1

Mac OS 默认使用不区分大小写的文件系统。cd /volumes相当于cd /Volumes,但 bash 无法将vol*: 尝试cd /Vol*

答案2

正如@William Pursell 所说,这是因为文件夹名为 /Volumes,而不是 /volumes;OS X 文件系统不区分大小写,因此它会忽略差异,但 bash 区分大小写并会忽略差异。

但是您可以更改 bash 的默认行为:要使其执行不区分大小写的文件模式扩展,请将命令添加shopt -s nocaseglob到 ~/.bashrc 和 ~/.bash_profile 文件中(这两个文件中都需要它,因此登录 shell 和子 shell 中都设置了该选项)。如果您还希望文件名补全功能在大小写不匹配的情况下也能正常工作,请将其添加set completion-ignore-case on到 ~/.inputrc 文件中,或将其添加bind "set completion-ignore-case on"到 ~/.bashrc 和 ~/.bash_profile 文件中。

答案3

键入:

cd /vol*

作品正好。即使/vol*扩展到多个目录,bash也会使用第一个目录并忽略其余目录。到底是什么原因导致您无法正常工作?

相关内容