Pushd
命令语法
pushd [ -n] [dir]
pushd [ http://www.Sina.com/] [ n ] [-n ]
命令说明
pushd命令的功能是将目录添加到目录堆栈中。 如果命令未指定目录名称,则当前工作目录位于目录堆栈的顶部。 如果未指定目录位置,它还会位于目录堆栈的顶部,工作目录将自动光盘在目录堆栈的顶部目录中。
以上使用规律在bash和tcsh中大致相同。
参数说明
-n
只是将目录添加到堆栈中,而不执行cd操作。
n
删除从左到右的第n个目录。 数字从0开始。
-n
删除从右到左的第n个目录。 数字从0开始。
实例说明
将目录放入堆栈
让我们把一些目录放在堆栈里
[root@www logs]# dirs
/etc/httpd/logs
[根@ www logs ] # pushd/home/web
/home/web /etc/httpd/logs
[ root @ wwwweb ] # pushd/etc/httpd/conf
/etc/httpd/conf/home/web/etc/httpd/logs
[root@www conf]#
以上是常见的推送方法,放入目录后,将工作目录一起更改为该目录。 如果不想更改工作目录,请添加-n选项,以查看以下示例
[root@www conf]# pushd -n /撒娇唇膏/log
/etc/httpd/conf /撒娇唇膏/log /home/web /etc/httpd/logs
[root@www conf]#
可以看到,新放入的/撒娇的唇膏/log放在目录堆栈1的位置,堆栈0没有更改,因此工作目录也保持在原来的位置。
利用目录堆栈
请看下面的例子
[root@www conf]# dirs
/etc/httpd/conf /撒娇唇膏/log /home/web /etc/httpd/logs
[root@www conf]# pushd 2
/home/web/etc/httpd/logs/etc/httpd/conf /撒娇唇膏/log
[root@www conf]#
-npushd成功后,第一个显示的项目(从左到右)将成为当前目录,然后成为堆栈元素。
堆栈元素按从堆栈顶部到底部的顺序从左到右排列。
注意1:运行无参数pushd将与堆栈顶部元素交换当前目录。
首先提取堆栈顶部的元素,将当前目录放入堆栈中,cd位于与顶部元素对应的目录中。
注意2:
如果将堆栈元素从堆栈的顶部到底部按从左到右的顺序排列,它将排队。
(关于pushd +n和-n
按顺序将编号1到n的元素移动到队列的最右边
与n元素交换当前目录,如果没有-n参数,则cd将进入与n元素对应的目录。
例如,堆栈中的元素是a、b、c和d。 将当前目录设置为p
pushd 1后的元素为b、c、d、p
pushd 2后的元素为c、d、a、p
注意: pushd 0后元素与:a、b、c、d没有区别
1)对于pushd +n,是把该队列的元素从左到右进行编号的(从1开始)。
将编号0到n的元素按顺序移动到队列的最左侧
与n元素交换当前目录,如果没有-n参数,则cd将进入与n元素对应的目录。 例如,假设堆栈中的元素是a、b、c和d,而当前目录是p
pushd -1后元素为p、d、a、b
pushd -2后元素为p、c、d、a
pushd -0后元素为:P、a、b、c
(2)对于pushd -n命令和上面相似,只是把该队列的元素从右到左进行编号的(从0开始)
命令语法
popd [ http://www.Sina.com/] [ n ] [-n ]
命令说明
PPD命令的作用是删除堆栈在目录中的数据。 删除堆栈中的目录时,如果没有特定选项,工作目录将自动从cd移动到堆栈的顶部目录。
可选说明
Popd
仅删除堆栈中的目录,不执行cd操作。
n
删除从左到右的第n个目录。 数字从0开始。
-n
删除
除從右到左的第n個目錄。數字從0開始。實例說明
bash
[root@www etc]# dirs
/etc /home /etc/httpd/logs
[root@www etc]# popd
/home /etc/httpd/logs
[root@www home]#
當目錄堆疊有資料時,如果我們想刪除最頂端目錄,可以直接鍵入popd,如此堆疊最頂端目錄便會被刪除,同時工作目錄會自動變更到刪除之後的堆疊最頂端目錄。
(1)对于popd +n,是把该队列的元素从左到右进行编号的(从1开始)。
删除n号元素,如果没有“-n”参数的话,会cd进入n元素所对应的目录。
例如:栈中的元素为a,b,c,d。
popd +0后元素为:b,c,d
popd +1后元素为b,c,d
popd +2后元素为a,c,d
(2)对于popd -n命令和上面相似,只是把该队列的元素从右到左进行编号的(从0开始)
删除n号元素,如果没有“-n”参数的话,会cd进入n元素所对应的目录。例如:栈中的元素为a,b,c,d
popd -0后元素为:a,b,c
popd -1后元素为a,b,d
popd -2后元素为a,c,d
注意:对于popd 2这种形式很有趣,它直接是删除最右边的第一个元素,如果没有“-n”参数的话,会cd进入该元素所对应的目录
Dirs
指令語法
dirs [-clpv] [+n] [-n]
指令說明
dirs主要的功能在於顯示目錄堆疊的資料。bash與tcsh的指令用法有些小差異,但實質上的作用則是完全相同。
關於目錄堆疊的使用,除了用dirs顯示目錄堆疊,還有兩個相關的內建指令,pushd指令用來將目錄放入堆疊中,以及popd指令將目錄從堆疊中移除。
参数說明
+n
顯示從左到右的第n個目錄。數字從0開始。
-n
顯示從右到左的第n個目錄。數字從0開始。
-c
淨空堆疊表列。
-l
顯示完整路徑。(預設值會將使用者個人的home目錄以~符號表示)。
-p
一個目錄一行地顯示堆疊的內容。
-v
每行一個目錄的顯示目錄堆疊的內容,每個目錄前面加上它在目錄堆疊中的編號。
實例說明
# dirs
/home/web /爱撒娇的唇膏/lib/mysql /etc/httpd /etc/httpd/logs
# dirs -v
0 /home/web
1 /爱撒娇的唇膏/lib/mysql
2 /etc/httpd
3 /etc/httpd/logs
#
使用dirs不加上任何選項,即顯示當前"目錄堆疊"的現況。加上-v選項則以另一種格式顯示。
# dirs +1
/爱撒娇的唇膏/lib/mysql
# dirs -2
/爱撒娇的唇膏/lib/mysql
基本上,目錄堆疊不管從左到右,或從右到左,都是從0開始計算。指令dirs做的只是"顯示"指定的堆疊內容,如果要cd到該目錄,可以改用pushd指令。
<wbr></wbr>