pushd およびpopd Linuxおよびその他のUnixライクなオペレーティングシステムでディレクトリスタックを操作し、現在の作業ディレクトリを変更できるようにするコマンドです。 pushd およびpopd 非常に強力で便利なコマンドであり、過小評価されており、ほとんど使用されていません。
このチュートリアルでは、 pushdの使用方法を説明します。 およびpopd システムのディレクトリツリーをナビゲートするコマンド。
ディレクトリスタック#
ディレクトリスタックは、以前に移動したディレクトリのリストです。ディレクトリスタックの内容は、 dirsを使用して確認できます。 指図。 pushd を使用してディレクトリに変更すると、ディレクトリがスタックに追加されます。 コマンドを実行し、 popdで削除します コマンド。
現在の作業ディレクトリは、常にディレクトリスタックの最上位にあります。現在の作業ディレクトリは、ユーザーが現在作業しているディレクトリ(フォルダ)です。コマンドラインを操作するたびに、ディレクトリ内で作業しています。
pwd コマンドを使用すると、現在どのディレクトリにいるかを確認できます。
ファイルシステム内を移動するときは、 Tabを使用します ディレクトリの名前をオートコンプリートするためのキー。ディレクトリ名の末尾にスラッシュを追加することはオプションです。
pushd 、 popd およびdirs はシェルビルトインであり、その動作はシェルごとにわずかに異なる場合があります。コマンドのBash組み込みバージョンについて説明します。
pushd コマンド#
pushdの構文 コマンドは次のとおりです:
pushd [OPTIONS] [DIRECTORY]
たとえば、現在のディレクトリをディレクトリスタックの一番上に保存し、 / var / wwwに変更します。 次のように入力します:
~$ pushd /var/www
成功すると、上記のコマンドはディレクトリスタックを出力します。 〜コード> pushdを実行したディレクトリです 指図。チルダ記号〜 ホームディレクトリを意味します。
/var/www ~
pushd 最初に現在の作業ディレクトリをスタックの一番上に保存してから、指定されたディレクトリに移動します。現在のディレクトリは常にスタックの一番上にある必要があるため、変更すると、新しい現在のディレクトリはスタックの一番上に移動しますが、スタックには保存されません。保存するには、 pushdを呼び出す必要があります それから。 cdを使用する場合 別のディレクトリに移動すると、スタックの一番上のアイテムが失われます。
スタックに別のディレクトリを追加しましょう:
/var/www$ pushd /opt
/opt /var/www ~
ディレクトリへの変更を抑制するには、 -nを使用します オプション。たとえば、 / usr / localを追加するには ディレクトリをスタックに追加しますが、次のように入力します。
/opt$ pushd -n /usr/local
現在のディレクトリ(常に一番上にある)は変更されないため、 / usr / local ディレクトリはスタックの一番上から2番目に追加されます:
/opt /usr/local /var/www ~
pushd + Nの2つのオプションを受け入れます および-N これにより、 Nthに移動できます スタックのディレクトリ。 + N オプションがNthに変更されます ゼロから始めて左から右に数えるスタックリストの要素。 -Nの場合 カウントの方向は右から左です。
オプションをわかりやすく説明するために、現在のディレクトリスタックを印刷してみましょう。
/opt$ dirs -l -v
出力には、ディレクトリスタックのインデックス付きリストが表示されます。
0 /opt
1 /usr/local
2 /var/www
3 /home/linuxize
/ var / wwwに変更する場合 ディレクトリを作成し、スタックの一番上に移動します。次のいずれかを使用します。
上から下(または左から右)に数える場合、ディレクトリのインデックスは 2です。 。
pushd +2
/ var / wwwのインデックスを下から上に数える場合 ディレクトリは1 。
pushd -1.
引数なしで使用する場合、 pushd 上位2つのディレクトリを切り替え、新しい最上位を現在のディレクトリにします。これは、cd-を使用する場合と同じです。 コマンド。
popd コマンド#
popd コマンドの形式は次のとおりです:
popd [OPTIONS]
引数なしで使用する場合、 popd スタックから最上位ディレクトリを削除し、新しい最上位ディレクトリに移動します。
次のディレクトリスタックがあるとします。
/opt /usr/local /var/www /etc/nginx ~
popdを実行する場合 コマンドを実行すると、 / optが削除されます スタックから/usr / localに変更します ディレクトリ:
/opt$ popd
出力には、新しいディレクトリスタックが表示されます:
/usr/local /var/www /etc/nginx ~
-n オプションは、デフォルトのディレクトリ変更を抑制し、スタックから2番目のアイテムを削除します。
/opt$ popd -n
/usr/local /etc/nginx ~
pushdと同じ 、 popd + Nも受け入れます および-N Nthを削除するために使用できるオプション スタックのディレクトリ。
/opt$ popd +1
/usr/local ~
結論#
通常は、 cdを使用します あるディレクトリから別のディレクトリに移動するコマンド。ただし、コマンドラインに多くの時間を費やす場合は、 pushd およびpopd コマンドを使用すると、生産性と効率が向上します。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。