Bash

cd 到一個目錄,當它的路徑作為命令輸入時(而不是“foo 是一個目錄”錯誤)

  • July 18, 2018

我討厭什麼時候bash給我“呃!” 錯誤類型:

foo$ ./bar
-bash: ./bar: is a directory

我曾經喜歡 AmigaOS shell,其中“執行”一個目錄僅僅意味著將其設置為目前目錄:

foo$ ./bar
bar$ 

有可能bash嗎?(當然沒有無限數量的別名。)

Bash 4.0 有這個autocd選項。

官方常見問題解答

有一個新的 ‘autocd’ 選項,當啟用時,會導致 bash 嘗試 ‘cd’ 到作為簡單命令的第一個單詞提供的目錄名。

此外,請查看至少早在 2.0 以來的任何版本的CDPATH環境變數。man bash它允許您cd通過在列出的目錄中搜尋命令中指定的目錄來縮短命令cd

不了解 bash,但這在 zsh 中是可能的。

# ~/.zshrc
setopt autocd

編輯:您可能可以在 bash 中處理此問題,就像 ubuntu 擷取未找到的命令一樣

   # bashrc

   function command_not_found_handle {
           if [ -d $1]; then
               cd $1
           else
               echo command not found
           fi
   }

引用自:https://serverfault.com/questions/51216