pushd
を使用してさまざまなディレクトリに移動しましたが、実行すると
dirs -v
私は得る:
0 ~/Desktop
1 /etc
2 /var/log
3 ~/Downloads
4 /tmp
スタックの途中にある特定のディレクトリにpopd
するにはどうすればよいですか?例:option 2: /var/log
man bash
は言う
+ n表示されているリストの左側からn番目のエントリを削除します
ゼロから始まるdirsによる。例: `` popd +0 ''は
最初のディレクトリ、2番目の「popd +1」。
私はもう試した
また、正しいディレクトリをスタックからポップしますが、現在の作業ディレクトリは変更しません。
特定のディレクトリをpopd
して、現在の作業ディレクトリを「ポップされた」ディレクトリに変更するにはどうすればよいですか?
cd "`dirs +<number>`"
ここで、<number>
は0または3などです。
いずれにせよ、 http://davidcorne.com/tag/cd/ などのCDラッパーをチェックすることをお勧めします。これはバックグラウンドでdirスタックにPush
esし、許可しますcd --
およびdirs -v
の代わりにcd -<number>
を実行して、目的のディレクトリに移動します。また、最初のティルダを$HOME
に置き換え、コメントでほのめかした問題を排除します。
Cygwinディストリビューションの.bashrcファイルでスクリプトを見つけました。 20行目なので正しく動作しませんでした
adir=$(dirs +$index)
adirにインデックスが含まれるようになりました(例: '2/cygdrive/d')ので、その後に行を追加しました
adir=${adir:4}
そしてそれはうまくいくようです