歡迎光臨
每天分享高質量文章

如何在 Linux 中不使用 CD 命令進入目錄/檔案夾? | Linux 中國

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

— Magesh Maruthamuthu

 

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

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

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

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

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

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

  1. $ Documents/
  2. bash: Documents/: Is a directory

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

什麼是 .bashrc ?

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

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

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

  1. $ vi ~/.bashrc

加入這一行:

  1. shopt -s autocd

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

  1. $ source ~/.bashrc

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

  1. $ Documents/
  2. cd -- Documents/
  3. $ daygeek/
  4. cd -- daygeek/
  5. $ /home/daygeek/Documents/daygeek
  6. cd -- /home/daygeek/Documents/daygeek
  7. $ pwd
  8. /home/daygeek/Documents/daygeek

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

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

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

  1. # shopt -s autocd
  2. # shopt | grep autocd
  3. autocd on
  4. # shopt -u autocd
  5. # shopt | grep autocd
  6. autocd off

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

  1. $ shopt
  2. autocd on
  3. assoc_expand_once off
  4. cdable_vars off
  5. cdspell on
  6. checkhash off
  7. checkjobs off
  8. checkwinsize on
  9. cmdhist on
  10. compat31 off
  11. compat32 off
  12. compat40 off
  13. compat41 off
  14. compat42 off
  15. compat43 off
  16. compat44 off
  17. complete_fullquote on
  18. direxpand off
  19. dirspell off
  20. dotglob off
  21. execfail off
  22. expand_aliases on
  23. extdebug off
  24. extglob off
  25. extquote on
  26. failglob off
  27. force_fignore on
  28. globasciiranges on
  29. globstar off
  30. gnu_errfmt off
  31. histappend on
  32. histreedit off
  33. histverify off
  34. hostcomplete on
  35. huponexit off
  36. inherit_errexit off
  37. interactive_comments on
  38. lastpipe off
  39. lithist off
  40. localvar_inherit off
  41. localvar_unset off
  42. login_shell off
  43. mailwarn off
  44. no_empty_cmd_completion off
  45. nocaseglob off
  46. nocasematch off
  47. nullglob off
  48. progcomp on
  49. progcomp_alias off
  50. promptvars on
  51. restricted_shell off
  52. shift_verbose off
  53. sourcepath on
  54. xpg_echo off

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

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

 

贊(0)

分享創造快樂