私はよくcd -
を使用して、元の場所に戻ります。 bashでこれを複数回行うにはどうすればよいですか?または、zshや他のツールがこれをサポートしますか?
Zshには、auto_pushd
オプション。このオプションは、cd
をpushd
のように動作させます。次に、popd
を使用して前のディレクトリに戻ることができます。
~ $ setopt auto_pushd
~ $ cd /
/ $ cd /var
/var $ cd /usr
/usr $ dirs
/usr /var / ~
/usr $ popd
/var $ popd
/ $ popd
~ $
Bashでは、cd
をpushd
にエイリアスできます。
alias cd=pushd
これの1つの欠点は、cd
の3つのフラグを失うことです。 cd
ヘルプエントリから:
-L強制的にシンボリックリンクをたどる
-Pシンボリックリンクをたどらずに物理ディレクトリ構造を使用します
-e -Pオプションが指定されていて、現在の作業ディレクトリを正常に特定できない場合は、ゼロ以外のステータスで終了します
エイリアスの代わりに実際のcd
ビルトインを使用する必要がある場合は、次のいずれかを使用できます。
'cd'
-コマンドを引用すると、シェルはエイリアスを解決せず、通常のCDを使用します。\cd
-引用文字をバックスラッシュで囲みます。 Wordの1文字を引用すると、シェルはWord全体を引用として扱います。builtin cd
-これは、エイリアスの代わりに組み込みを使用するようにシェルに直接指示します。以下は、ディレクトリをブックマークして便利な場所にジャンプするための、すばやく簡単な方法です。
$ a() { alias $1="cd $PWD"; }
どこかに行って次のように入力してください:
$ a 1
これで、現在のディレクトリをcd
する1
というコマンドがあります。後でタイプするだけです:
$ 1
そして、そのディレクトリに戻ります。これは非常に便利です。
この問題を解決するスクリプトを見つけました。これを使用すると、cd --
と入力して、使用した最後の10個のディレクトリを表示できます。次のようになります。
0 ~/Documents/onedir
1 ~/Music/anotherdir
2 ~/Music/thirddir
3 ~/etc/etc
~/Music/thirddir
に移動するには、単にcd -2
と入力します
http://www.geocities.com/h2428/petar/bash_acd.htm
oh-my-zshはこのためのいくつかの本当に素晴らしい機能を提供します(少なくともこれを設定するのはoh-my-zshだと思います)。
基本的に、d
はdirs -v | head -10
のエイリアスです
dirs
はzsh組み込みコマンドであり、最後にアクセスしたディレクトリを表示します。
また、1
はcd -1
にエイリアスされ、すべての数値に対して9
にエイリアスされます。
実際には、次のように機能します。
$ pwd
/home/me/Documents/gems/Java_regex/lib
$ d
0 ~/Documents/gems/Java_regex/lib
1 ~/Documents/gems/Java_regex
2 ~/Documents/gems
3 ~/Documents
4 ~
$ 2
~/Documents/gems
$ pwd
/home/me/Documents/gems
Bashに組み込まれているpushd
を使用して、新しい作業ディレクトリをディレクトリスタックにプッシュできます。前の作業ディレクトリに戻るには、popd
を使用してスタックのディレクトリをポップします。
私は commandlinef で見つけた単純な関数をずっと前に使用しています
up() { local x='';for i in $(seq ${1:-1});do x="$x../"; done;cd $x; }
(私のosxに追加.profileは魅力のように機能します)