いいですね。簡単な質問です。私はpushd
コマンドを使用してリストにさらに多くの作業ディレクトリを追加できることを誤って知りました。これは便利です。しかし、再起動やログアウト後も維持されるように、このリストを永久に作成する方法はありますか?
答え1
~/.bashrc
必要に応じて、ファイルにディレクトリスタックを事前入力できます。
for dir in "$HOME/dir" /usr/src /usr/local/lib; do
pushd -n "$dir" >/dev/null
end
または、ディレクトリを配列に入れてそこで使用するには、次の手順を実行します。
dirstack=( "$HOME/dir"
/usr/src
/usr/local/lib )
for dir in "${dirstack[@]}"; do
pushd -n "$dir" >/dev/null
end
unset dirstack
を使用すると、-n
実際にはpushd
作業ディレクトリが変更されず、指定されたディレクトリがスタックに追加されるだけです。
必要に応じて、配列の値DIRSTACK
(ここでは変数名を大文字で指定)を格納できます。現在のディレクトリスタックをファイルに配置し、あらかじめ定義された配列を使用する代わりに~/.bash_logout
そのファイルを読みます。~/.bashrc
存在する~/.bash_logout
:
declare -p DIRSTACK >"$HOME/.dirstack"
存在する~/.bashrc
:
if [ -f "$HOME/.dirstack" ]; then
source "$HOME/.dirstack"
fi
複数の端末を使用している場合、これがどのようにうまく機能するかわかりません。.dirstack
端末がbash
ログインシェルとして実行されている場合は、終了するたびにこのファイルを上書きします。