如何在 Linux 中不使用 CD 命令進入目錄/資料夾?

2019-03-31 21:59:00

眾所周知,如果沒有 cd 命令,我們無法 Linux 中切換目錄。這個沒錯,但我們有一個名為 shopt 的 Linux 內建命令能幫助我們解決這個問題。

shopt 是一個 shell 內建命令,用於設定和取消設定各種 bash shell 選項,由於它已安裝,因此我們不需要再次安裝它。

是的,我們可以在啟用此選項後,可以不使用 cd 命令切換目錄。

我們將在本文中向你展示如何操作。這是一個小的調整,但對於那些從 Windows 遷移到 Linux 的新手來說非常有用。

這對 Linux 管理員沒用,因為我們不會在沒有 cd 命令的情況下切換到該目錄,因為我們對此有經驗。

如果你嘗試在沒有 cd 命令的情況下切換 Linux 的目錄/資料夾,你將看到以下錯誤訊息。這在 Linux 中很常見。

$ Documents/bash: Documents/: Is a directory

為此,我們需要在使用者 .bashrc 中追加以下值。

什麼是 .bashrc ?

.bashrc 是一個 shell 指令碼,每次使用者以互動模式開啟新 shell 時都會執行該指令碼。

你可以在該檔案中新增要在命令提示字元下輸入的任何命令。

.bashrc 檔案本身包含終端對談的一系列設定。包括設定和啟用:著色、補全,shell 歷史,命令別名等。

$ vi ~/.bashrc

加入這一行:

shopt -s autocd

執行以下命令使更改生效。

$ source ~/.bashrc

我們已完成所有設定。簡單地對此進行測試以確認這是否有效。

$ Documents/cd -- Documents/$ daygeek/cd -- daygeek/$ /home/daygeek/Documents/daygeekcd -- /home/daygeek/Documents/daygeek$ pwd/home/daygeek/Documents/daygeek

是的,它正如預期的那樣正常工作。

而且,它在 fish shell 中工作正常,而無需對 .bashrc 進行任何更改。

如果要暫時執行此操作,請使用以下命令(設定或取消設定)。重新啟動系統時,它將消失。

# shopt -s autocd# shopt | grep autocdautocd  on# shopt -u autocd# shopt | grep autocdautocd  off

shopt 命令提供了許多其他選項,如果要驗證這些選項,請執行以下命令。

$ shoptautocd  onassoc_expand_once   offcdable_vars     offcdspell     oncheckhash   offcheckjobs   offcheckwinsize    oncmdhist     oncompat31    offcompat32    offcompat40    offcompat41    offcompat42    offcompat43    offcompat44    offcomplete_fullquote  ondirexpand   offdirspell    offdotglob     offexecfail    offexpand_aliases  onextdebug    offextglob     offextquote    onfailglob    offforce_fignore   onglobasciiranges onglobstar    offgnu_errfmt  offhistappend  onhistreedit  offhistverify  offhostcomplete    onhuponexit   offinherit_errexit offinteractive_comments    onlastpipe    offlithist     offlocalvar_inherit    offlocalvar_unset  offlogin_shell     offmailwarn    offno_empty_cmd_completion offnocaseglob  offnocasematch     offnullglob    offprogcomp    onprogcomp_alias  offpromptvars  onrestricted_shell    offshift_verbose   offsourcepath  onxpg_echo    off

此外,我找到了一些其他程式,它們可以幫助我們在 Linux 中比 cd 命令更快地切換目錄。

它們是 pushdpopdup shell 指令碼和 bd 工具。我們將在接下來的文章中介紹這些主題。