`dirs`의 참조 항목

`dirs`의 참조 항목

pushd나는 and에서 여러 디렉토리를 사용했습니다 . 나는 디렉토리 스택에 무엇이 있는지 보고 싶을 때 순서가 지정된 목록을 얻을 수 있도록 별칭을 사용했습니다.bashzshdirsdirs -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/

관련 정보