1. 概要

通常、現在の作業ディレクトリを変更するには、cdコマンドを使用します。 ただし、ターミナルでいくつかのコマンドを実行している場合を考えてみましょう。次に、前のディレクトリに移動します。

前のパスを思い出せないか、パスを知っている可能性がありますが、すぐに戻りたいと考えています。 このチュートリアルでは、これを実現するためのcdの引数としてどのように使用できるかを見ていきます。

2. の意味– cdを使用

異なるコマンドの引数としての単一のダッシュは、異なる意味を持つ場合があります。 たとえば、 past のようなコマンドでダッシュを使用すると、標準入力の読み取りにつながる可能性があります。 ただし、cdの引数として dashを使用すると、現在のディレクトリが前の作業ディレクトリに変更されます。

/ home /piディレクトリにいるとしましょう。

$ pwd
/home/pi

現在のディレクトリを/homeに変更しましょう。

$ cd /home

それでは、 cd – を使用して、その機能を確認しましょう。

$ cd -
/home/pi

cdコマンドの引数として単一のダッシュを使用すると、前の作業ディレクトリ(OLDPWD)のパスが含まれます。 そのため、元の場所( / home / pi )にすばやく戻ることができました。

OLDPWDの値はいつでも出力できることに注意してください。

$ echo "$OLDPWD"
/home

OLDPWD変数はcdによって設定されます。 それでは、cdを数回使用してみましょう。

$ cd /
$ cd /etc
$ cd /var
$ cd lib

pwd コマンドを使用すると、 / var /libディレクトリにいることがわかります。 したがって、OLDPWDの値は/varになります。 次に、 cd – を数回使用して、出力を確認しましょう。

$ cd -
/var
$ cd -
/var/lib
$ cd -
/var
$ cd -
/var/lib

cd – を何度使用しても、 OLDPWDは単なる変数であり、スタック。 したがって、常に1つの値しか含まれていません。 したがって、最後の2つのディレクトリを切り替えているだけです。 以前のディレクトリのスタックを作成するには、pushdおよびpopdコマンドの使用を検討できます。

システムの起動直後にcd– を使用すると、エラーが発生することに注意してください。

$ cd -
-bash: cd: OLDPWD not set

これは、OLDPWDがまだ設定されていないためです。 また、このコマンドは、プロセスが成功した場合は終了ステータス0を返し 、プロセスが失敗した場合は1を返すことに注意してください

$ cd -; echo $?
-bash: cd: OLDPWD not set
1

$?を使用できます。これは、フォアグラウンドで最後に実行されたコマンドの終了ステータスを含むLinuxの特別なパラメーターです。

3. cd –と同等のコマンド

前の例では、 cd – コマンドが、ディレクトリの変更に加えて、現在の作業ディレクトリを出力していることがわかります。 したがって、次のコマンドと同じであると言えます。

$ cd "$OLDPWD" && pwd

cd –の機能を2つの部分に分割しています。

  • ディレクトリをOLDPWDに変更します
  • 現在の作業ディレクトリを印刷する

cd コマンドは現在の作業ディレクトリを印刷しないため、ディレクトリを OLDPWD に変更した後、pwdコマンドを使用して現在の作業ディレクトリも印刷します。

もちろん、 cd – で現在の作業ディレクトリを印刷したくない場合は、次を使用できます。

$ cd "$OLDPWD"

4. 結論

この記事では、 cd –を使用して以前の作業ディレクトリに戻る方法を説明しました。 cd – のダッシュには、OLDPWDの値が含まれています。