Bash引用
引用dirs
中的一個項目
我過去常常在和
pushd
中處理多個目錄。我使用了別名,以便在我想查看目錄堆棧上的內容時得到一個有序列表:bash``zsh``dirs``dirs -v
chb$ dirs 0 /Volumes/banister/grosste_daever_gh/2013-03-27/reader 1 /tmp/20130618202713/Library/Internet Plug-Ins 2 ~/code/foo/view/static/css 3 ~/Downloads
有沒有一種方法(在
bash
或中zsh
)我可以使用別名作為其在堆棧中的位置來引用命令行上列出的目錄之一?例如,而不是鍵入:chb$ cp ~/code/foo/view/static/css/baz.css ~/code/bar/view/static/css/
我會輸入:
chb$ cp <2>baz.css ~/code/bar/view/static/css/
…或類似的東西*,*也許使用美元符號和變數名而不是
<n>
.
Bash 在
DIRSTACK
變數中公開目錄堆棧。您還可以使用該命令dirs +2
來引用堆棧中的第二個條目。更方便的是,
~1
通過~9
引用堆棧中最頂層的九個條目。所以你的例子將轉化為chb$ cp ~2/baz.css ~/code/bar/view/static/css/
Zsh 具有相同的*~n*設施,並且堆棧通過一個名為
dirstack
. Bashdirs +2
是 zshprint -r ~2
或print -r $dirstack[2]
.
是的,在 bash 中:
cp $(dirs +2) ~/code/bar/view/static/css/
甚至更簡單:
cp ~2 ~/code/bar/view/static/css/