是否有用於更改目錄的 bash 通配符?

是否有用於更改目錄的 bash 通配符?

例如,當使用 Bash 命令列時,我可以使用以下命令更改目錄:

cd /volumes

不過我想輸入...

cd /vol*

但這行不通。有沒有辦法使用通配符導航目錄?

答案1

Mac OS 預設使用不區分大小寫的檔案系統。cd /volumes等價於cd /Volumes,但 bash 無法通配vol*: trycd /Vol*

答案2

正如 @William Pursell 所說,這是因為該資料夾被命名為 /Volumes,而不是 /volumes; OS X 檔案系統不區分大小寫,因此它忽略差異,但 bash 區分大小寫並忽略差異。

但是您可以更改 bash 的預設行為:要使其執行不區分大小寫的檔案模式擴展,請將命令添加shopt -s nocaseglob到~/.bashrc 和~/.bash_profile 檔案中(兩者都需要它,因此在兩個登錄shell 中都設定了該選項)和子殼)。如果您也希望在大小寫不符的情況下完成文件名補全,請新增set completion-ignore-case on至 ~/.inputrc 文件,或新增bind "set completion-ignore-case on"至 ~/.bashrc 和 ~/.bash_profile 檔案。

答案3

打字:

cd /vol*

作品正好。即使/vol*擴展到多個目錄,bash也會使用第一個目錄並忽略其餘目錄。到底什麼不適合你?

相關內容