ディレクトリスタック
ユーザーが異なるディレクトリを簡単に切り替えるために、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