🙌

複雑なディレクトリ間移動を可能にするpushd,popd

2021/07/09に公開

通常ディレクトリ移動するには平打ちするか絶対・相対パス等で移動すると思うが、

pushd,popdを使うことですぐに移動したい(また戻ってきたい)パスを

一時記憶しておく事ができる。

pushd

pushdは現在いるディレクトリを一時記憶する事が出来る。

pushdの後に移動したいディレクトリを入力することで、

一時記憶しつつ移動することもできる。

また、複数記憶することも可能(詳細はdirsにて)

apple_nk@Mac-mini ~ % cd test
apple_nk@Mac-mini test %
apple_nk@Mac-mini test % pushd
apple_nk@Mac-mini ~ %
apple_nk@Mac-mini ~ % cd test/test2/
apple_nk@Mac-mini test2 %
apple_nk@Mac-mini test2 % pwd
/Users/apple_nk/test/test2
apple_nk@Mac-mini test2 % pushd ../
apple_nk@Mac-mini test %


popd

popdは一時記憶したディレクトリに戻り、戻った記憶は消去される。

pushdしていない場合は直前にいたディレクトリ

pushdしている場合はpushdしたディレクトリ

apple_nk@Mac-mini ~ % cd test/test2/
apple_nk@Mac-mini test2 %
apple_nk@Mac-mini test2 % pwd
/Users/apple_nk/test/test2
apple_nk@Mac-mini test2 % pushd
apple_nk@Mac-mini ~ %
apple_nk@Mac-mini ~ % popd
apple_nk@Mac-mini test2 %
apple_nk@Mac-mini test2 % cd
apple_nk@Mac-mini ~ %
apple_nk@Mac-mini ~ % cd test/
apple_nk@Mac-mini test % popd
apple_nk@Mac-mini ~ %

dirs

dirs -vで一時記憶したディレクトリを確認することができる。

dirs -cで現在のディレクトリ以外の記憶を消去することができる。

apple_nk@Mac-mini ~ % pushd test
apple_nk@Mac-mini test %
apple_nk@Mac-mini test % pushd test2
apple_nk@Mac-mini test2 %
apple_nk@Mac-mini test2 % dirs -v
0       ~/test/test2
1       ~/test
2       ~
apple_nk@Mac-mini test2 %
apple_nk@Mac-mini test2 % dirs -c
apple_nk@Mac-mini test2 %
apple_nk@Mac-mini test2 % dirs -v
0       ~/test/test2


複数pushdして複数記憶させたものを、

ローテションしながらディレクトリ移動したりするなど、

より複雑な移動をする事もできるが、

そこまですることはほぼなさそうなので、

上記を覚えてさえいれば問題なさそう。


参考サイト
https://www.atmarkit.co.jp/ait/articles/1712/15/news022.html

Discussion