bash를 사용하면 현재 작업 디렉토리를 푸시하고 팝하는 방법이 있습니까? 글을 쓰려고 bash;cd dir; ./dostuff;exit;
했지만 현재 디렉토리는 현재 dir
입니다.
bash를 사용하면 현재 작업 디렉토리를 푸시하고 팝하는 방법이 있습니까? 글을 쓰려고 bash;cd dir; ./dostuff;exit;
했지만 현재 디렉토리는 현재 dir
입니다.
답변:
호출 bash
하면 자체 입력이있는 새로운 서브 쉘이 시작됩니다. 다른 명령은 종료 될 때까지 실행되지 않습니다. parens로 실행할 명령을 둘러싸면 새 서브 쉘이 시작되지만 그 안에 명령이 실행됩니다.
( cd dir ; ./dostuff )
'cd.'를 사용하던 곳으로 돌아가거나 'cd ..'등을 사용하여 두 곳으로 돌아갈 수 있도록 디렉토리 변경 사항을 추적하기 위해 별칭을 사용합니다.
alias pushdd="pushd \$PWD > /dev/null"
alias cd='pushdd;cd'
alias ssh='ssh -A'
alias soc='source ~/.bashrc'
#below to go back to a previous directory (or more)
alias popdd='popd >/dev/null'
alias cd.='popdd'
alias cd..='popdd;popdd'
alias cd...='popdd;popdd;popdd'
alias cd....='popdd;popdd;popdd;popdd'
#below to remove directories from the stack only (do not 'cd' anywhere)
alias .cd='popd -n +0'
alias ..cd='popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0;popd -n +0'
..cd
충분합니까? 스택에서 마지막 10 개 항목 만 제거하는 것 같습니다.
pushd Saves the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories.