-- TOC --
bash默认会记住用户上一次进入的目录,通过cd -
命令就可以返回,连续调用此命令,可以在两个目录间来回切换。
$ cd ~/sources/
xinlin@K:~/sources$ cd -
/home/xinlin/test
xinlin@K:~/test$ cd -
/home/xinlin/sources
xinlin@K:~/sources$ cd -
/home/xinlin/test
注意与
cd ~
区分开来!
如果希望记住更多目录,就需要用到目录栈功能,入栈pushd
,出栈popd
。
xinlin@K:~/test$ mkdir -pv a/b/c/d/e/f/g
mkdir: created directory 'a'
mkdir: created directory 'a/b'
mkdir: created directory 'a/b/c'
mkdir: created directory 'a/b/c/d'
mkdir: created directory 'a/b/c/d/e'
mkdir: created directory 'a/b/c/d/e/f'
mkdir: created directory 'a/b/c/d/e/f/g'
xinlin@K:~/test$ pushd a
~/test/a ~/test
xinlin@K:~/test/a$ pushd b
~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b$ pushd c
~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c$ pushd d
~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d$ pushd e
~/test/a/b/c/d/e ~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d/e$ pushd f
~/test/a/b/c/d/e/f ~/test/a/b/c/d/e ~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d/e/f$ pushd g
~/test/a/b/c/d/e/f/g ~/test/a/b/c/d/e/f ~/test/a/b/c/d/e ~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d/e/f/g$ popd
~/test/a/b/c/d/e/f ~/test/a/b/c/d/e ~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d/e/f$ !!
popd
~/test/a/b/c/d/e ~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d/e$ !!
popd
~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d$ !!
popd
~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c$ !!
popd
~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b$ popd
~/test/a ~/test
xinlin@K:~/test/a$ popd
~/test
!!
用于直接执行上一个命令。
dirs
命令可以用于显示目录栈的所有内容:
$ pushd a
~/test/a ~/test
xinlin@K:~/test/a$ pushd b
~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b$ pushd c
~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c$ pushd d
~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d$ pushd e
~/test/a/b/c/d/e ~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d/e$ dirs
~/test/a/b/c/d/e ~/test/a/b/c/d ~/test/a/b/c ~/test/a/b ~/test/a ~/test
xinlin@K:~/test/a/b/c/d/e$ dirs -c
xinlin@K:~/test/a/b/c/d/e$ dirs
~/test/a/b/c/d/e
dirs -c
清空目录栈。
用dirs -p
或dirs -v
显示目录栈更清爽!
用pushd
命令可以实现目录栈的rotate,具体参考pushd --help
。
用popd
命令可以实现删除目录栈的内容,具体参考popd --help
。
本文链接:https://cs.pynote.net/sf/linux/shell/202201251/
-- EOF --
-- MORE --