- Home ›
- コマンドプロンプトの使い方 ›
- ドライブとディレクトリ ›
- HERE
ディレクトリ位置の格納と取り出し(PUSHD, POPD)
現在のカレントディレクトリの位置を記憶しておき、移動先のディレクトリから記憶したディレクトリに戻る方法を確認します。
現在のカレントディレクトリの位置を格納すると同時にカレントディレクトリを変更にはpushdコマンドを使用します。
pushd パス
pushdコマンドはcdコマンドと同様に指定したパスへカレントディレクトリを変更しますが、変更前のカレントディレクトリをスタックに格納します。スタックとは記憶場所だと考えて下さい。
スタックにディレクトリが格納されている状態でpopdコマンドを使用すると、スタックからディレクトリの情報を取り出しそのディレクトリに移動します。
popd
popdコマンドが実行されるとスタックから1つディレクトリ情報を取り出します。取り出された情報はスタックから削除されます。
パスを指定せずにpushdコマンドを実行した場合、現在スタックに格納されているディレクトリを表示します。
pushd
具体的な使い方は次のサンプルを見てください。
サンプル
では実際に試してみます。現在のカレントディレクトリを「C:¥cdtest¥」とします。
「C:¥tmp¥」ディレクトリへpushdコマンドを使って移動します。
この時、スタックには移動前のカレントディレクトリである「C:¥cdtest¥」ディレクトリが格納されています。では引数無しでpushdコマンドを実行し確認してみます。
現在スタックに格納されている「C:¥cdtest¥」が表示されました。
ではpopdコマンドを実行して元のディレクトリに戻ります。
このようにpushdコマンドとpopdコマンドは一時的に別のディレクトリに移動して作業を行い、その後で元のディレクトリに戻りたい場合などに便利です。
複数のディレクトリを格納する
pushdコマンドによってスタックに格納できるディレクトリは1つだけではありません。pushdコマンドによってディレクトリが格納された状態で、popdコマンドによって取り出される前に再度pushdコマンドを実行することでさらにディレクトリをスタックに格納します。
複数のディレクトリが格納されている状態でpopdコマンドを実行すると、最後に格納されたディレクトリが1つ取り出されます。ディレクトリが取り出される順番を変更することはできません。
では実際に試してみます。現在のカレントディレクトリを「C:¥cdtest¥」とします。
「dat」ディレクトリへpushdコマンドを使って移動します。
pushdコマンドで確認してみるとスタックに「C:¥cdtest¥」ディレクトリが格納されていることが確認できます。
では「C:¥tmp¥」ディレクトリへpushdコマンドを使って移動します。
pushdコマンドで確認してみるとスタックに「C:¥cdtest¥dat¥」ディレクトリと「C:¥cdtest¥」ディレクトリの二つが格納されていることが確認できます。
ではpopdコマンドでスタックからディレクトリを取り出し移動します。この時取り出されるディレクトリは最後にスタックに格納された「C:¥cdtest¥dat¥」ディレクトリです。
pushdコマンドで確認してみるとスタックから「C:¥cdtest¥dat¥」ディレクトリが削除され、「C:¥cdtest¥」ディレクトリだけが格納されていることが確認できます。
このようにpushdコマンドとpopdコマンドは複数のディレクトリ情報を格納したり取り出したりすることができます。
( Written by Tatsuo Ikura )