上に上がるのではなく、前のディレクトリに変更するにはどうすればいいですか?

上に上がるのではなく、前のディレクトリに変更するにはどうすればいいですか?

私は現在、ツリーのかなり下にあり、ルートで互いに分岐する 2 つのパスの間を行ったり来たりしながら、多くの時間を仕事に費やしています。cdユーザーを最後にいたディレクトリに移動させる引数があれば、私の仕事はずっと楽になるだろうと思います。

つまり、私が次の状況にある場合:

/etc/foo/bar/baz/moo

そして次のように入力します:

cd /var/lib/fubarred_app/blargh/logs

パス全体を再度入力しなくても、最初のディレクトリに戻れるようにしたいと思います。

メモリ キーでは不十分です。各場所で十分なコマンドを使用するため、戻って必要なパスを見つけるのは、自分で入力するのと同じくらい困難です。

前のディレクトリに移動できる短いコマンドはありますか?

答え1

コマンド

cd -

主流のシェルのほとんどで必要なスワップを実行しますが、古い長いバージョンは

cd "$OLDPWD"

以前の作業ディレクトリを含む環境変数を使用します。


POSIXマニュアルページcd言及:

説明

上記の手順の実行中に PWD 環境変数が変更された場合、OLDPWD 環境変数も古い作業ディレクトリ (つまり、cd の呼び出し直前の現在の作業ディレクトリ) の値に変更されます。

オペランド

  -  ハイフンをオペランドとして使用する場合、これは次のコマンドと同等になります。

cd "$OLDPWD" && pwd 

前の作業ディレクトリに変更し、その名前を書き込みます。

答え2

bryan の回答に加えて、ディレクトリをスタックのように構築する と がpushdあることも言及する価値があります。これは Windows NT でも使用できますが、すべてのシェルで使用できるわけではありません。popd

たとえば、3 つの異なるディレクトリに移動して、次のように呼び出すと常にスタックが表示されますpushd

charon:~ werner$ pushd Documents/
~/Documents ~

charon:Documents werner$ pushd ../Movies/
~/Movies ~/Documents ~

charon:Movies werner$ pushd ../Downloads/
~/Downloads ~/Movies ~/Documents ~

3 回続けて呼び出すとpopd、スタック内のディレクトリに逆順でアクセスします。同時に、スタックは再び空になります。

charon:Downloads werner$ popd
~/Movies ~/Documents ~

charon:Movies werner$ popd
~/Documents ~

charon:Documents werner$ popd
~

charon:~ werner$ popd
-bash: popd: directory stack empty

Zsh を使用している場合、 AUTO_PUSHD オプションがあり、自動的にcdスタックにプッシュされます。

答え3

いくつかの「ジャンプ」プログラムがあります

  • オートジャンプ(基本機能を維持)
  • じ2 (一部の高度な機能はメンテナンスされていないようです)
  • (高度な機能を備えた「j」のメンテナンスバージョン)

これらにより、あらゆる種類のディレクトリナビゲーションが容易になります。パスの一部を指定するだけで、すぐに機能します。

あなたの場合

~$ j baz 
/etc/foo/bar/baz/moo$

~$ j bla 
/var/lib/fubarred_app/blargh/logs$

これらのプログラムには任意の文字を割り当てることができますが、「j」が伝統的です :)

j2 と z は複数の検索用語をサポートしています。

~$ j baz src
/home/me/projects/baz/repository/trunk/src$

...そしてさらに多くのオプション。

~$ j -l  # list directories by "frecency"(frequency + recency) score
~$ j -r PATTERN # match by rank only, not recency
~$ j -t PATTERN # match by recency only, not rank

答え4

に加えて cd -cd $OLDPWD

を押して、以前入力したコマンドCTRL-Rの文字をいくつか入力すると、履歴検索を使用できます。繰り返し押すと、古い一致が表示されます。cdCTRL-R

この方法は、変更するパスが 2 つ以上ある場合に便利です。

関連情報