linux shell pushd popd dirs命令

转载 2015年11月19日 15:17:33

http://www.cnblogs.com/davidwang456/p/3784102.html

http://blog.csdn.net/yucan1001/article/details/8455757

http://blog.163.com/yangfan876@126/blog/static/806124562013720104712282/


1、dirs

1)功能
显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)

2)语法
(1)格式:dirs  [-clpv]  [+n]  [-n]
(2)选项
-c    删除目录栈中的所有记录
-l     以完整格式显示
-p    一个目录一行的方式显示
-v    每行一个目录来显示目录栈的内容,每个目录前加上的编号
+N  显示从左到右的第n个目录,数字从0开始
-N   显示从右到左的第n个日录,数字从0开始
注意:dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录

2、pushd

1)功能
pushd命令常用于将目录加入到栈中,加入记录到目录栈顶部,并切换到该目录;若pushd命令不加任何参数,则会将位于记录栈最上面的2个目录对换位置

2)语法
(1)格式:pushd  [目录 | -N | +N]   [-n]
(2)选项
目录   将该目录加入到栈顶,并执行"cd 目录",切换到该目录
+N   将第N个目录移至栈顶(从左边数起,数字从0开始)
-N    将第N个目录移至栈顶(从右边数起,数字从0开始)
-n    将目录入栈时,不切换目录

3、popd

1)功能
popd用于删除目录栈中的记录;如果popd命令不加任何参数,则会先删除目录栈最上面的记录,然后切换到删除过后的目录栈中的最上面的目录

2)语法
(1)格式:popd  [-N | +N]   [-n]
(2)选项
+N   将第N个目录删除(从左边数起,数字从0开始)
-N    将第N个目录删除(从右边数起,数字从0开始)
-n    将目录出栈时,不切换目录


Bourne Again和TC Shell都允许用户将其正在使用的目录列表存放起来,这样就可以在这些目录之间轻易移动。这个目录列表称为栈。它模拟了餐厅所用的盘子:一般将盘子放到栈的顶部或者从栈的顶部取盘子,这就创建了一个先入后出(FILO)的栈。

1. dirs:显示栈

内置命令dirs显示目录栈的内容。如果当目录栈是空的时候调用dirs,它将显示工作目录的名字。

 

$ dirs
~/literature

 

内置命令dirs使用代字符~表示用户主目录的名字。下面几节中的示例均假设用户使用图8-2中给出的目录结构。

 

 

 
图8-2  示例所使用的目录结构

 

2. pushd:将目录压入栈中

使用内置命令pushd(push directory,将目录推到栈顶)可以改变目录,同时添加一个新的目录到栈顶。除改变目录之外,内置命令pushd还将显示栈的内容。图8-3阐明了下面的示例。

 

    $ pushd ../demo
~/demo ~/literature
$ pwd
/home/sam/demo
$ pushd ../names
~/names ~/demo ~/literature
$ pwd
/home/sam/names

 

 

 
图8-3  创建目录栈

 

当不带参数使用pushd时,pushd交换栈顶最上面的两个目录,并将新的栈顶目录(即原来的次栈顶目录)作为新的工作目录(如图8-4所示):

 

$ pushd
~/demo ~/names ~/literature
$ pwd
/home/sam/demo    

 

 

 
图8-4  使用pushd改变工作目录

 

这样使用pushd,就可以轻易地在两个目录之间来回移动。不管是否显式地创建目录栈,都可以使用cd– 切换到前一个目录。为了访问目录栈中的其他目录,可以在调用pushd时,带上一个以加号开头的数字作为参数。栈中目录的编号从栈顶开始算起,栈顶目录的编号是0。下面的pushd命令继续前一个示例,将工作目录改变到literature,并将literature移动到栈顶。

 

$ pushd +2                
~/literature ~/demo ~/names
$ pwd
/home/sam/literature

 

3. popd:将目录从栈中弹出

使用内置命令popd(pop directory,弹出目录)可将目录从栈中移出。不带参数的popd将栈顶目录从栈中移出,并将工作目录改变到这个新的栈顶目录。下面的示例和图8-5给出了这种情况。

 

$ dirs
~/literature ~/demo ~/names
$ popd
~/demo ~/names
$ pwd
/home/sam/demo

 

 

 

 
图8-5  使用popd命令将目录从栈中移出

 

为了移出除栈顶之外的其他目录,可以使用一个以加号开头的数字作为参数传递给popd。下面的示例将目录编号1(即demo)移出:

 

$ dirs
~/literature ~/demo ~/names
$ popd +1
~/literature ~/names   

 

移出标号不为0的目录并不会改变工作目录。


话说shell中还有这样的命令,以前还真么有用过....pushd和popd。首先这两个命令是shell内建命令,pushd作用是建立一个目录栈,并将指定的目录加入栈顶,对应的popd就是弹出栈顶目录。pushd有几个参数,+n (加n)-n(减n)这个是将栈旋转,n是数字,也就是说将整个目录栈旋转几个数字....貌似描述的不明确,看看下面的例子:

[yangfan@dhcp-13-42 /]$ pushd /home/yangfan/test
~/test / ~ ~/kernel /home
[yangfan@dhcp-13-42 test]$ pushd -2
~ ~/kernel /home ~/test /
[yangfan@dhcp-13-42 ~]$ pushd +2
/home ~/test / ~ ~/kernel

Linux命令--pushd和popd

Linux有三个关于目录切换的常用命令,分别是cd,pushd,popd。cd大家再熟悉不过了,今天学习了一下pushd的使用。cd用于切换工作目录,但是如果你在两个目录之间需要频繁切换时,比如/et...

Linux中pushd和popd用法

linux命令pushd和popd使用方法      与linux cd命令相似,用pushd实现在不同目录间切换   在命令行模式下,当你工作在不同目录中,你将发现你有很多时间都浪费在...

linux 命令之 pushd、popd、dirs,以及栈的基础知识

栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表 插入、删除这些操作的一端为栈顶(Top),另一端称为栈底(Bottom)。 当表中没有元素时称为空栈。 栈为一种先进后...

Linux dirs命令详解

功能:dirs命令显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)。dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录。 ...

【Bash百宝箱】shell目录栈(dirs、pushd、popd)

在shell中,目录栈是一组最近访问过的目录,使用内建命令dirs、pushd、popd进行管理。dirs命令可以显示目录栈的内容,pushd命令可以把目录压入目录栈、更改当前目录,popd命令可以从...
  • iEearth
  • iEearth
  • 2016年09月28日 21:34
  • 803

pushd,popd及dirs命令

Pushd 指令語法 pushd [-n] [dir] pushd [-n] [+n] [-n] 指令說明 pushd 指令的功能是將目錄加入目錄堆疊中。如果指令沒有指定目錄名稱,則會將當前...
  • hudashi
  • hudashi
  • 2011年12月04日 19:32
  • 939

dirs\pushd\popd命令用法

转自:http://blog.csdn.net/yucan1001/article/details/8455757 Bourne Again和TC Shell都允许用户将其正在使用的...

Linux小技巧_pushd/popd/dirs

最近有个项目用到了一个BSP,需要修改原始包中的一些文件。但是,BSP包中的目录往往嵌套的很深,如:/home/deepsky/bspXXX/subDir1/subDir2/subDir3/subDi...

[linux][bash]让切换目录更方便: pushd,popd,dirs,cd -

让切换目录更方便: pushd,popd,dirs,cd - 一,为何要使用这几个命令?    可能大家会有疑问,为何要使用这几个命令,    难道用cd不就可以切换目录了吗?    没错...

[Linux]:linux [bash]切换目录更方便: pushd,popd,dirs,cd

让切换目录更方便: pushd,popd,dirs,cd - 一,为何要使用这几个命令? 可能大家会有疑问,为何要使用这几个命令, 难道用cd不就可以切换目录了吗? 没错,使用cd就可以切...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux shell pushd popd dirs命令
举报原因:
原因补充:

(最多只允许输入30个字)