Linux Tips

特定のディレクトリ間を素早く移動するには

北浦訓行
2001/2/1

 複数のディレクトリを交互に参照する必要のある作業は意外と多い。例えば、部内の共有ディレクトリ(/home/project/foo)にあるファイルを参照しながら、ホームディレクトリ(~/report/foo)で文章を作成するという作業を行う場合、一般的にはcdコマンドを使用する。しかし、cdコマンドの場合は、/home/project/fooに移動するときも、~/report/fooに戻るときも、再度「$ cd 移動するディレクトリ名」とキー入力しなければならない。ファイル名の補完機能(過去に実行したコマンドを再実行するには参照)を使えば、ある程度の手間は省けるが、面倒であることには変わりない。

 そんなときは、pushdpopddirsの各コマンドを使用すると便利だ。カレントディレクトリが~/report/fooで、/home/project/fooに移動する場合は、

$ pushd /home/project/foo
/home/project/foo ~/report/foo
$

と入力して、[Enter]キーを押す。すると、/home/project/fooに移動し、上記の例にあるように、移動先のディレクトリと移動元のディレクトリが表示される。次に、~/report/fooに戻るときには、単にpushdコマンドを実行する。

$ pushd
~/report/foo /home/project/foo
$

 上記の例では、~/report/fooと/home/project/fooがディレクトリスタックに保存される。ディレクトリスタックを表示するには、dirsコマンドを実行する。

$ dirs
~/report/foo /home/project/foo
$

 ディレクトリスタックに保存されたディレクトリエントリを削除するには、popdコマンドを実行する。

$ popd
/home/project/foo
$

 上記の例では、カレントディレクトリが~/report/fooだったので、カレントディレクトリが/home/project/fooに移動して、ディレクトリスタックから~/report/fooが削除される。

 ここで取り上げた例では、2つのディレクトリ間を移動しただけだが、3つ以上のディレクトリ間の移動も可能だ。その場合は、引数に+nを付ける。すると、n番目のディレクトリスタックが対象となる。

$ pushd ~/report/foo
~/report/foo /home/project/foo
$ pushd /tmp
/tmp ~/report/foo /home/project/foo
$ pushd +2
/home/project/foo /tmp ~/report/foo
$ pwd
/home/project/foo
$

 ちなみに、pwdはカレントディレクトリを表示するコマンドだ。

 dirs、pushd、popd、pwdは、いずれもシェルの組み込みコマンドなので、manページを表示するには、

$ man bash

を実行する。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間