pushd
나는 and에서 여러 디렉토리를 사용했습니다 . 나는 디렉토리 스택에 무엇이 있는지 보고 싶을 때 순서가 지정된 목록을 얻을 수 있도록 별칭을 사용했습니다.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
별칭을 사용하여 명령줄에 나열된 디렉터리 중 하나의 스택 위치를 참조하는 방법(in bash
또는 out ) 이 있습니까 ? 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>
.
답변1
Bash는 디렉토리 스택을 노출합니다.DIRSTACK
바꾸다. 이 명령을 사용하여 dirs +2
스택의 두 번째 항목을 참조할 수도 있습니다 .
더 편리하게는 스택의 상위 9개 항목을 참조하는 것 ~1
입니다 . ~9
따라서 귀하의 예는 다음과 같이 번역됩니다.
chb$ cp ~2/baz.css ~/code/bar/view/static/css/
Zsh는같은~n시설이며 스택은 라는 배열을 통해 노출됩니다 dirstack
. 배쉬 dirs +2
는 zsh print -r ~2
또는 print -r $dirstack[2]
.
답변2
예, Bash에서는 다음과 같습니다.
cp $(dirs +2) ~/code/bar/view/static/css/
훨씬 더 간단합니다:
cp ~2 ~/code/bar/view/static/css/