Linux/Mac的目录切换

作者: SnailTyan | 来源:发表于2016-10-23 23:35 被阅读524次

    文章作者:Tyan
    博客:noahsnail.com | CSDN | 简书

    无论是Mac还是Linux,其实都一样,在终端下经常都需要进行目录的切换,但每次都用cd命令有点太繁琐了,特别是在目录很长,文件夹名字很长的情况下。本文主要是对终端下的一些目录切换名字的总结。

    1. 两个目录之间的切换

    -代表的是前一个目录,如果只在两个目录中切换,这个命令就够了,-等价于$OLDPWD$OLDPWD也是前一个目录。其目录切换的形式如下:

    $ cd ~/MyEclipse/
    $ cd -
    /Users/***/Hexo
    $ cd -
    /Users/***/MyEclipse
    $ cd -
    /Users/***/Hexo
    $  cd -
    /Users/***/MyEclipse
    

    2. 多个目录之间的切换

    多个目录的切换要用到pushd,popd,dirs命令,下面是三个命令的解释:

    • dirs:显示目录栈

    • pushd:将目录压入目录栈,并切换目录(虚拟堆栈)

    • popd:将目录弹出目录栈,并切换目录(虚拟堆栈)

    多余的话不说,直接上例子更直观:

    # pushd会将参数目录和当前目录压入目录栈(虚拟堆栈)中,并跳转到参数目录,压入目录栈是按顺序压入的,~是当前用户的根目录
    $ pushd Hexo
    ~/Hexo ~
    $ pwd
    /Users/***/Hexo
    
    # pushd不加参数,回到前一个目录,并将当前目录压入目录栈中
    $ pushd
    ~ ~/Hexo
    $ pwd
    /Users/***
    
    
    # dirs查看目录栈中的目录
    $ dirs
    ~/Hexo ~
    
    # dirs -v显示目录的编号,并将目录按行排列,0代表新压入目录栈的目录
    $ dirs -v
     0  ~/Hexo
     1  ~
    
    
    # 压入一个新的目录到目录栈
    $ pushd MyEclipse/
    ~/MyEclipse ~ ~/Hexo
    $ pwd
    /Users/***/MyEclipse
    
    
    # dirs -p是按行显示目录栈中的目录
    $ dirs -p
    ~/MyEclipse
    ~
    ~/Hexo
    
    # popd是将栈顶的目录弹出,即编号为0的目录,并将目录切换到目录弹出后的栈顶目录
    $ popd
    ~ ~/Hexo
    $ pwd
    /Users/***
    
    $ popd
    ~/Hexo
    
    # 如果栈中只有一个目录,即当前目录,是不能使用popd的
    $ popd
    -bash: popd: directory stack empty
    
    # 如果栈中只有一个目录,是不能使用pushd的
    $ pushd
    -bash: pushd: no other directory
    
    
    # dirs -c 清空目录栈,只剩当前目录在目录栈中
    dirs -c
    
    
    
    $ pushd MyEclipse/
    ~/MyEclipse ~
    
    $ pushd ~/Hexo/
    ~/Hexo ~/MyEclipse ~
    
    $ pushd ~/Practice/
    ~/Practice ~/Hexo ~/MyEclipse ~
    
    $ dirs -v
     0  ~/Practice
     1  ~/Hexo
     2  ~/MyEclipse
     3  ~
    
    
    # popd +n 弹出目录栈中指定位置的目录,并将目录切换到栈顶目录
    $ popd +2
    ~/Practice ~/Hexo ~
    
    $ dirs -v
     0  ~/Practice
     1  ~/Hexo
     2  ~
    
    # push +n 将目录切换到指定位置的目录,并将其压入目录栈栈顶
    $ pushd +2
    ~ ~/Practice ~/Hexo
    $ dirs -v
     0  ~
     1  ~/Practice
     2  ~/Hexo
    

    备注:如例子所示,如果只有两个目录的情况下,可以一直用pushd切换目录。

    相关文章

      网友评论

      本文标题:Linux/Mac的目录切换

      本文链接:https://www.haomeiwen.com/subject/mugkuttx.html