pushd
描述
将目录添加到目录堆栈顶部。
- 将目录添加到目录堆栈顶部,切换当前工作目录到该目录。
- 旋转目录堆栈,使堆栈的新顶部成为当前工作目录。
- 没有参数时,交换目录堆栈的前两个目录。
语法
pushd: pushd [-n] [+N | -N | dir]
Add directories to stack.
Adds a directory to the top of the directory stack, or rotates
the stack, making the new top of the stack the current working
directory. With no arguments, exchanges the top two directories.
Options:
-n Suppresses the normal change of directory when adding
directories to the stack, so only the stack is manipulated.
Arguments:
+N Rotates the stack so that the Nth directory (counting
from the left of the list shown by `dirs', starting with
zero) is at the top.
-N Rotates the stack so that the Nth directory (counting
from the right of the list shown by `dirs', starting with
zero) is at the top.
dir Adds DIR to the directory stack at the top, making it the
new current working directory.
The `dirs' builtin displays the directory stack.
Exit Status:
Returns success unless an invalid argument is supplied or the directory
change fails.
参数
-n 抑制添加目录引起的当前工作目录变化。
+N 把正数第N个放到栈顶(从栈顶0开始)
-N 把倒数第N个放到栈顶(从栈底0开始)
-n 不切换,只压栈
dir 要推送的目录
例子
# 添加目录到堆栈,改变了当前工作目录。
[smaller ~]$ dirs
~
[smaller ~]$ pushd ~/Desktop
~/Desktop ~
[smaller Desktop]$
# 添加目录到堆栈,当前工作目录不变
[smaller ~]# dirs
~
[smaller ~]# pushd -n ~/Desktop
~ ~/Desktop
[smaller ~]# pushd -n ~/Pictures
~ ~/Pictures ~/Desktop # 因为当前目录不变,所以栈顶的还是~
# 调整顺序
[smaller ~]# pushd +1
~/Pictures ~/Desktop ~
[smaller ~]# pushd -1
~/Desktop ~ ~/Pictures
[smaller ~]# pushd
~ ~/Desktop ~/Pictures
popd
描述
把目录弹栈,就是从栈里删除。不带任何参数,模式删除栈顶,即最上面的目录,并将当前目录更改为栈顶目录。
语法
popd: popd [-n] [+N | -N]
Remove directories from stack.
Removes entries from the directory stack. With no arguments, removes
the top directory from the stack, and changes to the new top directory.
Options:
-n Suppresses the normal change of directory when removing
directories from the stack, so only the stack is manipulated.
Arguments:
+N Removes the Nth entry counting from the left of the list
shown by `dirs', starting with zero. For example: `popd +0'
removes the first directory, `popd +1' the second.
-N Removes the Nth entry counting from the right of the list
shown by `dirs', starting with zero. For example: `popd -0'
removes the last directory, `popd -1' the next to last.
The `dirs' builtin displays the directory stack.
Exit Status:
Returns success unless an invalid argument is supplied or the directory
change fails.
参数
-n 不切换,只出栈
+N 把正数第N个删除(从栈顶0开始)
-N 把倒数第N个删除(从栈底0开始)
例子
smaller:/tmp/dir4# popd(相当于popd +0)
/tmp/dir3 /tmp/dir2 /tmp/dir1 ~
smaller:/tmp/dir3# pushd /tmp/dir4
/tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1 ~
smaller:/tmp/dir4# popd +1
/tmp/dir4 /tmp/dir2 /tmp/dir1 ~
smaller:/tmp/dir4# popd -2
/tmp/dir4 /tmp/dir1 ~
dirs
描述
显示/清除 目录堆栈中的记录
语法
dirs [-clpv] [+N] [-N]
Display directory stack.
Display the list of currently remembered directories. Directories
find their way onto the list with the `pushd' command; you can get
back up through the list with the `popd' command.
Options:
-c clear the directory stack by deleting all of the elements
-l do not print tilde-prefixed versions of directories relative
to your home directory
-p print the directory stack with one entry per line
-v print the directory stack with one entry per line prefixed
with its position in the stack
Arguments:
+N Displays the Nth entry counting from the left of the list
shown by dirs when invoked without options, starting with
zero.
-N Displays the Nth entry counting from the right of the list
shown by dirs when invoked without options, starting with
zero.
Exit Status:
Returns success unless an invalid option is supplied or an error occurs.
参数
-c 清空目录堆栈。
-l 堆栈内以~开头的目录在显示时展开。
-p 将目录堆栈内的每一个目录按行显示。
-v 将目录堆栈内的每一个目录按行显示并在每行前加上堆栈内的位置编号。
+N(可选):不带参数执行dirs命令显示的列表中,左起的第N个目录将被显示。(从0开始计数)
-N(可选):不带参数执行dirs命令显示的列表中,右起的第N个目录将被显示。(从0开始计数)
例子
# 添加目录到堆栈
[smaller ~]$ dirs
~
[smaller ~]$ pushd -n ~/Desktop
~ ~/Desktop
[smaller ~]$ pushd -n ~/Pictures
~ ~/Pictures ~/Desktop
[smaller ~]$ pushd -n ~/bin
~ ~/bin ~/Pictures ~/Desktop
# 选项和参数的示例
[smaller ~]$ dirs -l
/home/user2 /home/user2/bin /home/user2/Pictures /home/user2/Desktop
[smaller ~]$ dirs -p
~
~/bin
~/Pictures
~/Desktop
[smaller ~]$ dirs -v
0 ~
1 ~/bin
2 ~/Pictures
3 ~/Desktop
[smaller ~]$ dirs +2
~/Pictures
[smaller ~]$ dirs -2
~/bin
[smaller ~]$ dirs -c
[smaller ~]$ dirs
~