考えてみると、普通にまわりにプログラマがいる環境というのはずいぶんとひさしぶりです。今日は同じ職場のperl使いの人に、pushdというコマンドを教えてもらいました。

[tsukasa@] $ pushd /tmp                                                     
/tmp ~
[tsukasa@] $ pwd                                                         
/tmp
[tsukasa@] $ pushd /var                                                  
/var /tmp ~
[tsukasa@] $ pwd                                                         
/var
[tsukasa@] $ dirs                                                        
/var /tmp ~
[tsukasa@] $ pushd +2                                                    
~ /var /tmp
[tsukasa@] $ pwd                                                            
/home/tsukasa
[tsukasa@] $ pushd devel                                                    
~/devel ~ /var /tmp
[tsukasa@] $ pushd kaeruspoon                                         
~/devel/kaeruspoon ~/devel ~ /var /tmp
[tsukasa@] $ pwd                                           
/home/tsukasa/devel/kaeruspoon
[tsukasa@] $ dirs                                          
~/devel/kaeruspoon ~/devel ~ /var /tmp
[tsukasa@] $ pushd -2                                      
~ /var /tmp ~/devel/kaeruspoon ~/devel
[tsukasa@] $ pwd                                                            
/home/tsukasa
[tsukasa@] $ dirs                                                           
~ /var /tmp ~/devel/kaeruspoon ~/devel
[tsukasa@] $ popd                                                           
/var /tmp ~/devel/kaeruspoon ~/devel
[tsukasa@] $ popd                                                        
/tmp ~/devel/kaeruspoon ~/devel
[tsukasa@] $ popd                                                        
~/devel/kaeruspoon ~/devel

 見ただけで使いかたはわかると思うけど、ようはスタックに、移動したディレクトリの情報がプッシュされていくのです。ちなみにpushdしただけでディレクトリも移動します。popdはもちろんスタックの一番上から取り出されるし、dirsはスタックの一覧表示をします。  "pushd +2"みたいな使いかたもできて、+だとスタックの上からカウントしたディレクトリへ、-だと下からカウントしたディレクトリへ移動できちゃいます。おー、すげー。