Linux命令:用“dirs”、“pushd”、“popd”来操作目录栈

你可以将目录压入目录栈,也可以稍后将该目录弹出。在随后的示例中,将会用到以下三个命令:

* dirs:显示目录栈

* pushd:将目录压入目录栈

* popd:将目录弹出目录栈

dirs命令显示当前所在目录及目录栈中的内容。即使目录栈为空,dirs也会显示当前所在的目录,示例如下:


1

2

3

4

5

6

# popd

-bash: popd: directory stack empty

# dirs

~

# pwd

/home/ramesh

如何使用pushd和popd呢?让我们先创建一些临时的目录然后把他们压入目录堆栈中去。


1

2

3

4

5

6

# mkdir /tmp/dir1

# mkdir /tmp/dir2

# mkdir /tmp/dir3

# mkdir /tmp/dir4

# cd /tmp/dir1

# pushd .


1

2

3

4

5

6

7

8

9

# cd /tmp/dir2

# pushd .

# cd /tmp/dir3

# pushd .

# cd /tmp/dir4

# pushd .

# dirs

/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1

[注:显示的第一个目录名总会是当前所在的目录,而不是显式压入堆栈里的内容]

此时,目录堆栈就包含以下内容:


1

2

3

4

/tmp/dir4

/tmp/dir3

/tmp/dir2

/tmp/dir1

最后被压入的目录会在堆栈的顶端。当你执行“popd”,系统就会跳转到栈顶的目录中,并且从堆栈中把它清除掉。正如上面所展示的,最后压入堆栈的是/tmp/dir4,所以当进行一次popd时,就会跳转到/tmp/dir4目录下同时从堆栈中将它移除。如下所示:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# popd

# pwd

/tmp/dir4

[注:执行完上popd命令之后,目录栈包括以下目录

/tmp/dir3

/tmp/dir2

/tmp/dir1]

# popd

# pwd

/tmp/dir3

[注:执行完上popd命令之后,目录栈包括以下目录

/tmp/dir2

/tmp/dir1]

# popd

# pwd

/tmp/dir2

[注:执行完上popd命令之后,目录栈包括以下目录 /tmp/dir1]

# popd

# pwd

/tmp/dir1

[注:执行完上popd命令之后,目录栈包括以下目录]

# popd

-bash: popd: directory stack empty

用“dirs”、“pushd”、“popd”来操作目录栈就介绍到这里。

时间: 2024-10-20 03:24:18

Linux命令:用“dirs”、“pushd”、“popd”来操作目录栈的相关文章

Linux命令(十) 在文件或目录之间创建链接 ln

命令简介 ln 命令用于连接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中.若同时指定多个文件或目录,且最后的目的地是一个不存在的目录,则出现错误. ln 命令会保持没一处链接文件的同步性,也就是说,只要改动其中的一处,其它地方的文件都会发生相同的变化. 常用参数 -b 每个已经存在的目标文件创建备份文件 -d 允许系统管理者硬链接自己的目录 -f 强行建立文件或目录的连接,不论文件或目录是否存在 -i 覆盖既有文件之

Linux命令行基本文件/文件夹操作

对文件的操作 创建空文件:   touch +文件名   # 一般是先touch好一个文件然后vim这个文件. 很好奇为什么叫touch.删除文件:  rm +文件名         # 直接就没了,不会到回收站 复制文件到指定位置: cp +文件 + 目标目录  # 例如 cp file sub 把当前目录下的file文件复制到了当前目录子目录sub里面.重命名/移动文件: mv +文件(文件夹) + 目标目录 # 例如 mv dir1 dir2/new 把文件夹dir1(及其内容)移动到了跟

Linux命令之sed批量替换字符串操作

使用sed命令可以进行字符串的批量替换操作,以节省大量的时间及人力: 使用的格式如下: sed -i "s/oldstring/newstring/g" `grep oldstring -rl path` 其中,oldstring是待被替换的字符串,newstring是待替换oldstring的新字符串,grep操作主要是按照所给的路径查找oldstring,path是所替换文件的路径: -i选项是直接在文件中替换,不在终端输出: -r选项是所给的path中的目录递归查找: -l选项是

Linux命令(七)查找文件或目录 find

find 命令可以根据给定的路劲和表达式查找指定的文件或目录.find 参数选项很多,并且支持正则表达式,功能强大. 和管道结合使用可以实现复杂的功能,是系统管理和普通用户必须掌握的命令. 一.find  命令格式说明 path find命令查找的目录路径. -print find命令将匹配到的文件输出到标准输出.  -exec find 命令对匹配的文件执行该参数所给出的Shell命令. -ok 和 -exec的作用相同,只是更安全,在执行每个命令之前,都会给出提示,让用户来确定是否执行. 二

Linux命令(14)改变文件和目录权限-chmod&chown

chmod 改变一个文件的权限:chmod [mode] file.txt改变一个目录的权限:chmod [mode] dir改变一个目录和其子目录的权限:    chmod [mode] dir -R mode = 777 or 752 and so on.mode的三个数字,分别表示owner,group,others所具备的权限.1=x 执行2=w 写4=r 读比如owner具有所有权限,1+2+4=7,又比如 group 具有读和执行权限1+4=5. ==================

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

栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表 插入.删除这些操作的一端为栈顶(Top),另一端称为栈底(Bottom). 当表中没有元素时称为空栈. 栈为一种先进后出的数据结构.或者称为后进先出 栈的修改需要遵循先进后出的原则.每次删除(退栈)的总是当前栈中"最新"元素(最后入栈的元素),而最先插入的元素是被放在栈的底部,要最后才能删除. 如图所示,元素是以 a1,a2,-,a(n-1),an的顺序入栈,退栈的顺序则是 an,a(n-1),-,a2,a1 pu

pushd,popd,dirs,cd -让切换目录更方便

与linux cd命令相似,用pushd实现在不同目录间切换 在命令行模式下,当你工作在不同目录中,你将发现你有很多时间都浪费在重复输入上如果这些目录不在同一个根目录中,你不得不在转换时输入完整的路径名,这难免让人有些难以忍受但你可以用以下的一个或两个步骤来避免所有多余的输入:用命令行解释器中的历史记录,或者用命令行函数pushd 用命令行解释器中的历史记录的好处是只需按很少的键在命令行中用向上的箭头来查找你用过的命令,直到你找到,然后按回车键如果你所切换的两个目录在整个驱动器的子目录结构中很接

常用的46个linux命令

问题一: 绝对路径用什么符号表示?当前目录.上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 答案:绝对路径: 如/etc/init.d当前目录和上层目录: ./  ../主目录: ~/切换目录: cd 问题二: 怎么查看当前进程?怎么执行退出?怎么查看当前路径?答案:查看当前进程: ps执行退出: exit查看当前路径: pwd 问题三: 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?答案:清屏: clear退出当前命令: ctrl+c

工作中一些常用的linux命令

问题一: 绝对路径用什么符号表示?当前目录.上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 答案:绝对路径:如/etc/init.d当前目录和上层目录:./  ../主目录:~/切换目录:cd 问题二: 怎么查看当前进程?怎么执行退出?怎么查看当前路径?答案:查看当前进程:ps执行退出:exit查看当前路径:pwd 问题三: 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?答案:清屏:clear退出当前命令:ctrl+c 彻底退出执行睡眠