2011/08/11

pushd

pushd
カレントディレクトリの変更とスタックへの追加

pushdは、cd(chdir)と同様に使えます。その上ディレクトリをスタックに保存してくれます。
linuxで作業していると、ディレクトリを移動してコマンドを実行することがたびたびあります。
その都度ディレクトリパスをメモして、カット&ペーストしてもいいのですが、ディレクトリスタックに保存しておいて再利用する方法があります。

コマンドの説明
pushd dir
ディレクトリを指定した場合は、指定したディレクトリがスタックに保存されます
pushd +1
「+」と数字を指定した場合は、指定した数字のディレクトリスタックに移動します。ディレクトリスタックは0から始まります

使用例(環境)
ユーザ user
ディレクトリ /home/user/tmp/,/home/user/tmp/dir1/,/home/user/tmp/dir2/
この場合でログイン直後は、/home/userにいます。
tmpとtmp/dir1,tmp/dir2に移動して作業することを想定した使用例です。

使用例
$ pwd
/home/user
$ pushd tmp
~/tmp ~
$ dirs
~/tmp ~
$ pushd dir1
~/tmp/dir1 ~/tmp ~
$ pushd ../dir2
~/tmp/dir2 ~/tmp/dir1 ~/tmp ~

$ pushd +1
~/tmp/dir1 ~/tmp ~ ~/tmp/dir2

最初は、「~」(/home/user)ホームディレクトリにいます。
次にtmpディレクトリに移動します。するとスタックには「~/tmp」と移動前の「~」が残ります。今いるディレクトリは、dirsで表示される先頭のディレクトリです。
そして、dir1に移動します。スタックには追加された「~/tmp/dir1」と保存されていた「~/tmp」「~」が残ります。
さらに、dir2に移動します。スタックには追加された「~/tmp/dir2」と保存されていた「~/tmp/dir1」「~/tmp」「~」が残ります。

このディレクトリ間を作業で移動する場合、たとえば「~/tmp/dir1」に戻る場合は次のいずれかです。
(1)pushd +1
(2)pushd ~/tmp/dir1
「pushd +1」は、ディレクトリスタックの「+1」番目への移動です。現在の並びが「~/tmp/dir2」「~/tmp/dir1」 「~/tmp」 「~」となっています。スタックは「+0」から始まるので「+1」番目が「~/tmp/dir1」になります。
また、「~/tmp/dir1」を指定してもいいのですが、pushdを使うメリットが少なくなります。

使い方のお勧め
cdの代わりにpushdを使用し、ディレクトリスタックに何があるかわからなくなったらdirsで確認する。

0 件のコメント:

コメントを投稿