ディレクトリスタック

ユーザーが異なるディレクトリを簡単に切り替えるために、Bash はディレクトリ スタック機能を提供します。

CD -

Bash は、ユーザーが入力したディレクトリを記憶できます。デフォルトでは、前のディレクトリのみが記憶され、cd - コマンドで前のディレクトリに戻ることができます。

#現在のディレクトリは/path/to/fooです
$CDバー

# /path/to/foo に戻ります
$cd-

上の例では、ユーザーの元のディレクトリは /path/to/foo です。サブディレクトリ bar に入った後、cd - を使用して元のディレクトリに戻ります。

プッシュ、ポップ

複数のディレクトリを記憶したい場合は、pushd コマンドと popd コマンドを使用できます。これらはディレクトリ スタックを操作するために使用されます。

pushd コマンドの使用法は、指定したディレクトリに入ることができる cd コマンドと似ています。

$ Pushd ディレクトリ名

上記のコマンドは、ディレクトリ dirname に入り、そのディレクトリをスタックに置きます。

初めて pushd コマンドを使用すると、現在のディレクトリが最初にスタックに置かれ、次に入力したいディレクトリもスタックの前のレコードの上に置かれます。今後 pushd コマンドを使用するたびに、入力したいディレクトリがスタックの最上位に配置されます。

popd コマンドがパラメータを取らない場合、スタックの最上位レコードを削除し、スタックの新しい最上位ディレクトリ (つまり、元の 2 番目のディレクトリ) に入ります。

以下に例を示します。

# 現在ホームディレクトリにあるスタックは空です
$pwd
/家/私

# /home/me/foo と入力します
# 現在のスタックは /home/me/foo /home/me です
$pushd ~/foo

# /etc を入力します
# 現在のスタックは /etc /home/me/foo /home/me です
$ プッシュ /etc

# /home/me/foo と入力します
# 現在のスタックは /home/me/foo /home/me です
$ポップ

# /home/me と入力します
#現在のスタックは/home/meです
$ポップ

# ディレクトリは変更されず、現在のスタックは空です
$ポップ

これら 2 つのコマンドのパラメータは次のとおりです。

(1)-n パラメータ

-n パラメータは、スタックの操作のみを行い、ディレクトリは変更しないことを意味します。

$ポップン

上記のコマンドは、ディレクトリを変更せずにスタックの先頭にあるレコードのみを削除します。実行後は現在のディレクトリに残ります。

(2) 整数パラメータ

どちらのコマンドも、スタック内の指定された位置 (0 から始まる) にあるレコードを表す整数をパラメーターとして受け入れることもできます。 「pushd」コマンドはこのレコードをスタックの最上位に移動し、ディレクトリに切り替えます。「popd」コマンドはこのレコードをスタックから削除し、ディレクトリは切り替えません。

# ディレクトリ番号 3 (0 から始まる) をスタックの先頭からスタックの先頭に移動し、同時にこのディレクトリに切り替えます
$プッシュ+3

# ディレクトリ番号 3 (0 から始まる) をスタックの一番下からスタックの一番上に移動し、同時にこのディレクトリに切り替えます
$pushd-3

# カレントディレクトリを変更せずに、スタックの先頭(0から始まる)から3番のディレクトリを削除します
$ポップド+3

# 現在のディレクトリを変更せずに、スタックの一番下 (0 から始まる) からディレクトリ番号 3 を削除します。
$popd-3

上の例の整数は 0 から計算されます。popd +0 は最初のディレクトリを削除し、popd +1 は 2 番目のディレクトリを削除します。popd -0 は最後のディレクトリを削除します。popd -1 は最後から 2 番目のものを削除します。

(3) ディレクトリパラメータ

pushd はパラメータとしてディレクトリを受け入れることができます。これは、ディレクトリをスタックの一番上に置き、そのディレクトリに入るという意味です。

$pushdir

popd にはこのパラメータはありません。

dirs コマンド

dirs コマンドはディレクトリ スタックの内容を表示でき、通常は pushd および popd 操作の結果を表示するために使用されます。

$ディレクトリ
~/foo/バー ~/foo ~

このコマンドは、ディレクトリ スタックをスペースで区切ってリストしたテキスト行を出力します。スタックの最上部 (スタックにプッシュされた最新のディレクトリ) は左端にあり、スタックの最下部 (最初にプッシュされたディレクトリ) は右端にあります。

以下のパラメータがあります。

  • -c: ディレクトリスタックをクリアします。
  • -l: ユーザーのホーム ディレクトリにはチルダ接頭辞は表示されませんが、完全なディレクトリが表示されます。
  • -p: ディレクトリ スタックを 1 行に 1 つのエントリで出力します。デフォルトでは 1 行に出力されます。
  • -v: 1 行に 1 つのエントリ。各エントリの前に位置番号 (0 から始まる) が表示されます。
  • +N: N は整数で、ヒープの先頭から N 番目のディレクトリが 0 から表示されることを示します。
  • -N: N は整数で、ヒープの下から N 番目のディレクトリが 0 から表示されることを示します。

作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0