bash で複数回 cd バックする方法はありますか?

bash で複数回 cd バックする方法はありますか?

cd -以前いた場所に戻るためによく使用します。これを bash で複数回実行するにはどうすればよいですか? または、zsh または他のツールがこれをサポートしていますか?

答え1

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

cdこの方法の唯一の欠点は、 の 3 つの旗を失うことです。cdヘルプ エントリから:

-L シンボリックリンクを強制的にたどる
-P シンボリックリンクをたどらずに物理ディレクトリ構造を使用する
-e -P オプションが指定され、現在の作業ディレクトリを正常に特定できない場合は、ゼロ以外のステータスで終了する

cdエイリアスの代わりに実際の組み込みを使用する必要がある場合は、次のいずれかを使用できます。

  • 'cd'- コマンドを引用符で囲むと、シェルはエイリアスを解決せず、通常の cd を使用します。
  • \cd- バックスラッシュは文字を引用します。単語の 1 つの文字を引用すると、シェルは単語全体を引用符で囲みます。
  • builtin cd- これは、エイリアスの代わりに組み込みを使用するようにシェルに直接指示します。

答え2

ディレクトリをブックマークして、そこに簡単に戻るための簡単な方法を次に示します。

$ a() { alias $1="cd $PWD"; }

どこかに行って次のように入力します:

$ a 1

これで、現在のディレクトリを1実行するというコマンドができました。後で次のように入力します。cd

$ 1

そして、あっという間にそのディレクトリに戻ります。これは非常に便利です。

答え3

バッシュ

利用可能なスクリプトを見つけましたここ、これで私の場合はこの問題が解決しました。これを入力すると、cd --最後に使用した 10 個のディレクトリが表示されます。次のようになります。

0  ~/Documents/onedir
1  ~/Music/anotherdir
2  ~/Music/thirddir
3  ~/etc/etc

行くには、~/Music/thirddir次のように入力してくださいcd -2

翻訳

oh-my-zsh はこれに対して非常に優れた機能を提供します (少なくともこれを設定するのは oh-my-zsh だと思います)。

d基本的には、dirs -v | head -10

dirsは zsh の組み込みコマンドであり、最後にアクセスしたディレクトリを表示します。

また、は に別名付けられ、 までのすべての数値に対しても同様に1別名付けられます。cd -19

実際には、次のように動作します。

$ 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

答え4

はい。cdコマンドをさらに強力にすることができます。Bash プロファイルを使用すると、希望どおりにカスタマイズできます。

cdディレクトリを移動するために複数の操作を行う代わりに、エイリアス

例えば ​​:

alias ..5="cd ../../../../.."

これにより、5 ディレクトリ上のレベルに移動します。

関連情報