zoukankan      html  css  js  c++  java
  • Shell 使用 pushd 和 popd实现快速定位

    Shell 使用 pushd 和 popd实现快速定位,如果需要在文件系统的多个位置上切换时,惯常的实践就是复制并粘贴路径,然后使用cd命令。但当涉及位置不止一个的时候,这种方法的效率并不高。如果需要在位置之间来回切换,时间都耗费在输入或粘贴路径上了。Bash和其他shell都支持使用pushdpopd命令切换目录。

    预备知识

    pushdpopd可以用于在多个目录之间切换而无需重新输入目录路径。这两个命令会创建一个路径栈,它是一个保存了已访问目录的LIFO列表(LastInFirstOut,后进先出)。

    实战演练

    可以使用pushdpopd来代替cd命令。
    (1) 压入并切换路径:

    ~ $ pushd /var/www
    
    Shell

    现在栈中包含/var/www ~,当前目录为 /var/www。
    (2) 再压入下一个目录路径:

    /var/www $ pushd /usr/src
    
    Shell

    现在栈中包含/usr/src /var/www ~,当前目录为/usr/src。
    你可以根据需要压入更多的目录路径。
    (3) 查看栈的内容:

    $ dirs
    /usr/src /var/www ~ /usr/share /etc
    0           1              2    3              4
    Shell

    (4) 当你想切换到栈中任意一个路径时,将每条路径从0编号到n,然后使用你希望切换到的路径编号。例如:

    $ pushd +3
    Shell

    这条命令会将栈进行翻转并切换到目录/usr/share。
    pushd总是向栈中添加路径。如果要从栈中删除路径,可以使用popd
    (5) 删除最近压入的路径并切换到下一个目录:

    $ popd
    
    Shell

    假设现在栈包含/usr/src /var/www ~ /usr/share /etc,当前目录是 /usr/src,popd会将栈更改为/var/www ~ /usr/share /etc,然后把当前目录切换至/var/www。
    (6) 用popd +num可以从栈中移除特定的路径。num是从左到右、从0到n开始计数的。

    补充内容

    让我们再进行一些基本的目录定位练习。
    当涉及3个以上的目录时,pushdpopd就可以发挥作用了。但是如果只涉及两个位置,还有另一个更简便的方法:cd -
    假设当前路径是 /var/www,执行下面的命令:

    /var/www $  cd /usr/src
    /usr/src $       # 做点什么
    Shell

    现在要切换回 /var/www,不需要再输入/var/www了,只执行:

    /usr/src $ cd -
    Shell

    你还可以再切换到 /usr/src:

    /var/www $ cd -
  • 相关阅读:
    学习TextKit框架(上)
    UITextView -- 基础备忘
    Quartz2D 备忘 + 学习
    CALayer -- 备忘
    NSURLSession -- 实际开发中运用
    NSURLSession -- 备忘
    Collection View 自定义布局(custom flow layout)
    CSS中一个冒号和两个冒号之间区别
    Chrome插件LiveStyle结合Sublime Text编辑器实现高效可视化开发
    Taking Advantage of HTML5 and CSS3 with Modernizr
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/15683062.html
Copyright © 2011-2022 走看看