Bashで何度もCDを元に戻す方法はありますか? [コピー]

Bashで何度もCDを元に戻す方法はありますか? [コピー]

cd -同じ場所に戻ることが多いです。 Bashでこれを何度も実行するにはどうすればよいですか?それともzshまたは他のツールがそれをサポートしていますか?

答え1

zshにはオプションがありますauto_pushd。このオプションを使用すると、以前のディレクトリに戻ることができますcdpushdpopd

~ $ setopt auto_pushd
~ $ cd /
/ $ cd /var
/var $ cd /usr
/usr $ dirs
/usr /var / ~
/usr $ popd
/var $ popd
/ $ popd
~ $

Bashでは、次のcdことができますpushd

alias cd=pushd

これには3つのフラグを失うという欠点がありますcdcdヘルプトピックから:

-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つのディレクトリに移動します。

関連情報