
我常常cd -
回到原來的地方。如何在 bash 中多次執行此操作?或者 zsh 或其他工具會支援這個嗎?
答案1
在 zsh 中,有一個auto_pushd
選項。此選項使cd
行為類似於pushd
.然後您可以使用popd
返回到先前的目錄。
~ $ setopt auto_pushd
~ $ cd /
/ $ cd /var
/var $ cd /usr
/usr $ dirs
/usr /var / ~
/usr $ popd
/var $ popd
/ $ popd
~ $
在 Bash 中,您可以cd
為pushd
.
alias cd=pushd
這樣做的一個缺點是您將失去cd
的三個標誌。從cd
幫助條目:
-L 強制遵循符號連結
-P 使用物理目錄結構而不遵循符號連結
-e 如果提供了 -P 選項,並且無法成功確定當前工作目錄,則以非零狀態退出
如果您必須使用實際的cd
內建函數而不是別名,您可以使用以下其中之一:
'cd'
- 引用該指令使 shell 不解析別名並使用普通 cd。\cd
- 反斜線引用字元。如果引用單字的一個字符,shell 會將整個單字視為被引用。builtin cd
- 這直接告訴 shell 使用內建函數而不是別名。
答案2
這是一種快速但骯髒的方法,可以方便地為目錄添加書籤並跳回它們:
$ a() { alias $1="cd $PWD"; }
去某個地方並輸入:
$ a 1
您現在有一個名為的命令1
,它可以執行cd
目前的目錄。稍後只需輸入:
$ 1
很快,回到那個目錄。我發現這非常有用。
答案3
巴什
我找到了一個可用的腳本這裡,這為我解決了這個問題。透過此命令,您可以鍵入內容cd --
來查看您最近使用過的 10 個目錄。它看起來像這樣:
0 ~/Documents/onedir
1 ~/Music/anotherdir
2 ~/Music/thirddir
3 ~/etc/etc
轉到~/Music/thirddir
只需鍵入cd -2
桀騁
oh-my-zsh 為此提供了一些非常好的功能(至少我認為是 oh-my-zsh 設定了這個)。
基本上,d
別名為dirs -v | head -10
dirs
是 zsh 內建指令,顯示您最近造訪過的目錄。
此外,所有數字的1
別名cd -1
等等9
。
實際上,它的工作原理如下:
$ pwd
/home/me/Documents/gems/java_regex/lib
$ d
0 ~/Documents/gems/java_regex/lib
1 ~/Documents/gems/java_regex
2 ~/Documents/gems
3 ~/Documents
4 ~
$ 2
~/Documents/gems
$ pwd
/home/me/Documents/gems
答案4
是的。我們可以讓您的cd
命令更加強大。 Bash 設定檔允許我們按照我們想要的方式自訂它。
我們可以cd
使用別名
例如 :
alias ..5="cd ../../../../.."
這將使您向上移動 5 個目錄。