pushd和popd用于在目录之间切换,它们使用栈的方式来管理目录:
dirs
显示当前目录栈中所有的目录:
╭─cs at css in /home using
╰─ dirs
/home ~/tt/test/pkg ~ // 其中/home为目录栈顶
dirs : 列出目录栈中所有目录
dirs -p : 以列表形式显示目录栈中所有目录
dirs -v : 以列表形式为显示的目录增加编号
dirs -c : 清空目录栈,但位于栈顶的当前目录是不能被pop出的
pushd
命令格式:push [-N | +N]
- -N 将目录栈中第N个目录推到栈顶(从左边数起,数字从0开始)
- +N 将目录栈中第N个目录推到栈顶(从右边数起,数字从0开始)
默认将目录增加到目录栈顶,并切换到该目录。
1、增加相对路径目录: 将当前目录/home下的cs/tt/test/pkg/cc目录增加到目录栈顶:
╭─cs at css in /home using
╰─ pushd cs/tt/test/pkg/cc;
~/tt/test/pkg/cc /home ~/tt/test/pkg ~
╭─cs at css in ~/tt/test/pkg/cc using
╰─
注意: 相对路径格式必须正确。
2、增加绝对路径目录:
╭─cs at css in /home using
╰─ pushd cs/tt/test/pkg/cc;
~/tt/test/pkg/cc /home ~/tt/test/pkg ~
3、没有指定参数,该命令用于将栈顶的两个目录进行对调:
╭─cs at css in ~/tt using
╰─ pushd
~ ~/tt ~/tt/test/pkg/cc /home ~/tt/test/pkg
╭─cs at css in ~ using
╰─
4、切换目录栈的任一目录:把此目录以堆栈循环的方式推到堆栈的顶部
╭─cs at css in /home using
╰─ dirs
/home ~ ~/tt/test/pkg ~/tt
╭─cs at css in /home using
╰─ pushd -1 // 从左边数起,将第1个目录"~"切换到栈顶
~ ~/tt/test/pkg ~/tt /home
╭─cs at css in ~ using
╰─ pushd +1 // 从右边数起,将第1目录"~/tt"切换到栈顶
~/tt /home ~ ~/tt/test/pkg
╭─cs at css in ~/tt using
╰─
popd 删除目录栈中的目录
命令格式:popd [-N | +N]
- -N 将第N个目录删除(从左边数起,数字从0开始)
- +N 将第N个目录删除(从右边数起,数字从0开始)
1、若无任何参数则删除目录栈顶的目录,并切换到栈顶下一个目录
╭─cs at css in ~ using
╰─ popd
~/tt ~/tt/test/pkg/cc /home ~/tt/test/pkg
╭─cs at css in ~/tt using
╰─
2、指定删除的目录
╭─cs at css in ~/tt using
╰─ dirs
~/tt ~/tt/test/pkg/cc /home ~/tt/test/pkg
╭─cs at css in ~/tt using
╰─ popd +1 // 删除从右边开始数的第1个目录"/home"(默认从0开始)
~/tt ~/tt/test/pkg/cc ~/tt/test/pkg
╭─cs at css in ~/tt using
╰─ popd -1 // 删除从左边开始数的第一个目录"~/tt/test/pkg/cc'
~/tt ~/tt/test/pkg