ウェブサイト検索

Linux でのファイルシステムの効率的なナビゲーションに「pushd」と「popd」を使用する


コマンドを使用して Linux ファイル システムをナビゲートするのは、特に初心者にとっては苦痛な場合があります。通常、Linux ファイル システム内を移動するには、主に cd (ディレクトリ変更) コマンドを使用します。

前回の記事では、cd ../../.. を繰り返し入力することなく、親ディレクトリにすばやく戻ることができる、bd という Linux 用のシンプルで便利な CLI ユーティリティをレビューしました。

このチュートリアルでは、Linux ディレクトリ構造の効率的なナビゲーションに使用される、関連する一連のコマンド「pushd 」と「popd 」について説明します。これらは、bash、tcsh などのほとんどのシェルに存在します。

推奨読書: 自動ジャンプ – Linux ファイルシステムを素早くナビゲートするための高度な「cd」コマンド

Linux での Pushd および Popd コマンドの仕組み

pushdpopd は、「LIFO」(後入れ先出し) の原則に従って機能します。この原則では、項目をスタックにプッシュする操作と、項目をスタックからポップする操作の 2 つだけが許可されます。

Pushd はスタックの最上位にディレクトリを追加し、popd はスタックの最上位からディレクトリを削除します。

ディレクトリ スタック (または履歴) 内のディレクトリを表示するには、次のように dirs コマンドを使用します。

dirs
OR
dirs -v

pushd コマンド – ディレクトリ パスをディレクトリ スタック (履歴) に配置/追加し、後で履歴内の任意のディレクトリに戻ることができるようにします。スタックにディレクトリを追加すると、履歴 (または「スタック」) に存在するものもエコーされます。

コマンドは、pushd がどのように機能するかを示しています。

pushd  /var/www/html/
pushd ~/Documents/
pushd ~/Desktop/
pushd /var/log/

上記の出力のディレクトリ スタックから (ディレクトリ インデックスは逆順です):

  • /var/log は、ディレクトリ スタックの 5 番目の [インデックス 0] です。
  • ~/デスクトップ/ は 4 番目です [インデックス 1]。
  • ~/Documents/ は 3 番目の [インデックス 2] です。
  • /var/www/html/ は 2 番目 [インデックス 3] であり、
  • は最初の [インデックス 4] です。

オプションで、pushd +# または pushd -# の形式でディレクトリ インデックスを使用して、ディレクトリをスタックに追加できます。 ~/Documents に移動するには、次のように入力します。

pushd +2

この後、スタックの内容が変更されることに注意してください。したがって、前の例から /var/www/html に移動するには、次のように使用します。

pushd +1

popd コマンド – スタックまたは履歴の最上位からディレクトリを削除します。ディレクトリ スタックを一覧表示するには、次のように入力します。

popd

ディレクトリ スタックからディレクトリを削除するには、popd +# または popd -# を使用します。この場合、以下のコマンドを入力して ~/Documents を削除します。 :

popd +1

こちらもご覧ください: Fasd – ファイルとディレクトリへの素早いアクセスを提供するコマンドライン ツール

このチュートリアルでは、ディレクトリ構造を効率的に移動するために使用される「pushd 」コマンドと「popd 」コマンドについて説明しました。以下のフィードバック フォームからこの記事に関するご意見を共有してください。