linux shell之pushd、popd、dirs

举报
chenyu 发表于 2021/07/26 23:15:21 2021/07/26
【摘要】 1 问题 我们有时候需要保存多个路径,上下键切换不方便,用cd-只能到上个目录,我们可以用dirs和pushd和popd                   2 dirs、pushd、popd dirs: 这个命令显示栈里面所有的路径,一定会包...

1 问题

我们有时候需要保存多个路径,上下键切换不方便,用cd-只能到上个目录,我们可以用dirs和pushd和popd

 

 

 

 

 

 

 

 

 

2 dirs、pushd、popd

dirs: 这个命令显示栈里面所有的路径,一定会包含当前路径,常用参数如下

dirs -v 显示栈里面的所有路径和下标,通过下标,我们可以用pushd +下标到这个目录,然后popd+下标把这个路径在栈里面弹出来,

dirs -c 清除栈里所有路径,但是当前路径不会删除

pushd:我们可以添加目录到栈(dirs)里面,比如添加当前目录pushd .  然后如果需要到栈里面具体哪个路径的话我们可以pushd +下标,如果是-下标的话,我们是从栈底算起

popd:我们可以弹出栈的最上面的一个路径,我们也可以popd +n弹出栈里面指定的具体路径,如果是-下标的话,我们是从栈底算起

 

 

 

 

 

 

 

 

 

 

3 使用过程

比如我们在当前目录下新建立4个文件夹dir1、dir2、dir3、dir4

我们cd到dir1里面去,然后把当前路径再添加进去pushd .

我们cd到dir2里面去,然后把当前路径再添加进去pushd .

我们cd到dir3里面去,然后把当前路径再添加进去pushd .

我们cd到dir4里面去,然后把当前路径再添加进去pushd .

我们再查看dirs -v


  
  1. 0 ~/Desktop/linux/dabian/shell/cat/push/dir3
  2. 1 ~/Desktop/linux/dabian/shell/cat/push/dir3
  3. 2 ~/Desktop/linux/dabian/shell/cat/push/dir4
  4. 3 ~/Desktop/linux/dabian/shell/cat/push/dir2
  5. 4 ~/Desktop/linux/dabian/shell/cat/push/dir1

很明显当前目录是dir3,比如我们现在要去dir2,我们直接执行pushd +3  再执行dirs -v看下


  
  1. 0 ~/Desktop/linux/dabian/shell/cat/push/dir2
  2. 1 ~/Desktop/linux/dabian/shell/cat/push/dir1
  3. 2 ~/Desktop/linux/dabian/shell/cat/push/dir3
  4. 3 ~/Desktop/linux/dabian/shell/cat/push/dir3
  5. 4 ~/Desktop/linux/dabian/shell/cat/push/dir4

很明显我们可以看到当前目录是dir2

比如我们执行下popd,弹出最顶层的那个,目录会切换到最dir1,我们再看下dirs -v


  
  1. 0 ~/Desktop/linux/dabian/shell/cat/push/dir1
  2. 1 ~/Desktop/linux/dabian/shell/cat/push/dir3
  3. 2 ~/Desktop/linux/dabian/shell/cat/push/dir3
  4. 3 ~/Desktop/linux/dabian/shell/cat/push/dir4

然后我们删除dir4看下,popd +4,然后我们再dirs -v看下


  
  1. 0 ~/Desktop/linux/dabian/shell/cat/push/dir1
  2. 1 ~/Desktop/linux/dabian/shell/cat/push/dir3
  3. 2 ~/Desktop/linux/dabian/shell/cat/push/dir3

很明显当前目录在dir1,我们切换到dir3里面去,pushd +2 然后dirs -v看下


  
  1. 0 ~/Desktop/linux/dabian/shell/cat/push/dir3
  2. 1 ~/Desktop/linux/dabian/shell/cat/push/dir1
  3. 2 ~/Desktop/linux/dabian/shell/cat/push/dir3

可以看到到了dir3这个目录了,我们再清除所有的栈里面的路径dirs -c,然后我们再dirs看下


  
  1. ~/Desktop/linux/dabian/shell/cat/push/dir3

在当前目录了,没毛病。

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/88586893

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。