bashを使用して、現在の作業ディレクトリをプッシュおよびポップする方法はありますか?私は書いてみましたbash;cd dir; ./dostuff;exit;
が、現在のディレクトリは今dir
です。
bashを使用して、現在の作業ディレクトリをプッシュおよびポップする方法はありますか?私は書いてみましたbash;cd dir; ./dostuff;exit;
が、現在のディレクトリは今dir
です。
回答:
呼び出しbash
は、独自の入力を持つ新しいサブシェルを開始します。他のコマンドは、終了するまで実行されません。括弧で実行するコマンドを囲むと、新しいサブシェルも開始されますが、その中のコマンドは実行されます。
( cd dir ; ./dostuff )
エイリアスを使用してディレクトリの変更を追跡し、「cd」を使用して、「cd。」を使用していた場所に戻るか、「cd ..」などを使用して2つ戻ることができます。
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.