🙌
複雑なディレクトリ間移動を可能にするpushd,popd
通常ディレクトリ移動するには平打ちするか絶対・相対パス等で移動すると思うが、
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して複数記憶させたものを、
ローテションしながらディレクトリ移動したりするなど、
より複雑な移動をする事もできるが、
そこまですることはほぼなさそうなので、
上記を覚えてさえいれば問題なさそう。
参考サイト
Discussion