Linuxシェルで使用された最後のディレクトリに戻るにはどうすればよいですか?
例:新しいシェル(または別のコンソールシェルのログ)を開き、次のように記述します。
root@vignesh : cd /root/Desktop
これにより、/root/Desktop
ディレクトリに移動します(アクセスできる場合)
root@vignesh:~/Desktop#
どうすれば前のディレクトリに戻ることができますか?
最後に使用したディレクトリに戻るコマンドはありますか?
前のディレクトリに戻るには、もう一度cd
コマンドを使用する必要がありましたか?
cd -
cd -
は、以前に使用したディレクトリ(存在する場合)に移動するか、エラーを生成します。
以前に使用されたディレクトリが存在する場合、現在の作業ディレクトリと前のディレクトリの値を更新して、正常な終了ステータス(0
)。
それ以外の場合は、エラーメッセージが出力され、終了ステータス(1
)が返されます。cd -; echo $?
で独自のチェックを行ってください。
スクリプトで使用する場合、終了ステータスが重要になります。
0以外の終了ステータスは、スクリプト全体の実行を停止する可能性があり(set -e
がある場合)、最悪の場合、cd -
コマンドの終了ポイントにつながる可能性があります。スクリプトを作成し、間違ったディレクトリでコマンドを実行するときに考えていたものから:dir0から開始すると想像してください。 dir1に変更した後、dir2への変更に失敗します。ここで、cd -
を実行します。あなたはdir1にいると思いますが、代わりにdir0にいます...そしてここからすべてが運命の手に委ねられます。
cd $OLDPWD
(またはcd $owd
)cd
は、すべてのシェル(sh
から始まるすべて)の内部コマンドです。
Under dash
およびbash
は、現在および古い作業ディレクトリの変数PWD
、OLDPWD
を設定します。 csh
とtcsh
の下では、代わりにcwd
とowd
が設定されます。
したがって、コマンドcd $OLDPWD
inbashまたはcd $owd
intcsh古い作業ディレクトリが存在する場合は移動し、この変数が設定されていない場合はホームディレクトリに移動します。
ホームディレクトリ(1)にアクセスできる場合、終了コードは常に0
になります。
pushd
はスタックにディレクトリを追加し、popd
はスタックからディレクトリを削除します。 cd -
に関する利点は、署名されたディレクトリに戻るためにwhenを選択し、最後のディレクトリに戻ることを強制されないことです。もう1つの利点は、多数のディレクトリを積み上げて、ジャンプ先を決定できることです。これらの組み込みコマンドに関する情報については、help pushd
およびhelp popd
を参照してください。
ノート:
cd $NotAlreadySetVariable
を書き込むことは、ホームディレクトリに移動するパラメータをまったく使用せずにcd
を書き込むことと同じです。正確には、$HOME
(bash、dash ...の場合)または$home
(csh、tcsh ...の場合)内のディレクトリに移動します。このディレクトリが存在しないか、アクセスできない場合は、エラーが発生します。 $HOME
(または$home
)が空の場合、現在のディレクトリに残り、エラーは生成されず、$OLDPWD
(または$owd
)の値は次のように設定されます。現在のディレクトリ。
$OLDPWD
、$owd
変数は、前のディレクトリをコマンドのパラメータとして使用する場合に役立ちます。例えば。すべてのファイルを現在のディレクトリから古いディレクトリに移動します:mv * $OLDPWD
。
トリビアルman bash
から、PWDの定義では、現在の作業ディレクトリ(PWD)のようなものではなく、現在の作業ディレクトリ(cwd)が使用されていることに注意してください。
PWD The logical value of the current working directory.
This is set by the cd command.
OLDPWD The previous logical value of the current working directory.
This is set by the cd command.
HOME The home directory of the current user; the default argument for
the cd builtin command. The value of this variable is also used when
performing tilde expansion.
man tcsh
から
cdおよびpushd `-'を古い作業ディレクトリ(シェル変数owdと同等)として解釈します。これはまったく置換ではありませんが、これらのコマンドによってのみ認識される略語です。それにもかかわらず、それも引用することによって防ぐことができます。
cd
コマンドを使用して理解しました
cd -
最後に使用したディレクトリにリダイレクトします
使用する pushd dir
ディレクトリを変更するにはpopd
を使用してディレクトリを元に戻すにはdirs
を使用してディレクトリスタックを表示するにはpushd
を使用して現在のディレクトリを以前のディレクトリに切り替えます