zoukankan      html  css  js  c++  java
  • 让切换目录更方便: pushd,popd,dirs,cd

    原文链接


       说明:  pushd,popd,dirs这几个我们讲到的命令是bash内建的命令,
             所以只要登录到了bash,这几个命令就可以使用了

    二,如何在两个目录之间切换?

     cd -就可以了
      
      cd -的作用是可以回到前一个目录,
      看例子:
      
      [root@localhost ~]# cd /usr/share/kde4/apps/kget/pics/
      [root@localhost pics]# cd -
       /root
      [root@localhost ~]# cd -
       /usr/share/kde4/apps/kget/pics
      [root@localhost pics]#


    三,如何在多个目录之间切换?
      我们需要使用 pushd

      1,
      先来介绍我们会用到的3条命令

      pushd:切换到作为参数的目录,并把原目录和当前目录压入到一个虚拟的堆栈中
             如果不指定参数,则会回到前一个目录,并把堆栈中最近的两个目录作交换
      popd: 弹出堆栈中最近的目录
      dirs: 列出当前堆栈中保存的目录列表


      看例子:
      [root@localhost ~]# pushd /usr/local/sbin/
      /usr/local/sbin ~
      [root@localhost sbin]# dirs
      /usr/local/sbin ~
      [root@localhost sbin]# dirs -p -v
       0  /usr/local/sbin
       1  ~
      [root@localhost sbin]# pushd /usr/share/kde4/apps/kget/
      /usr/share/kde4/apps/kget /usr/local/sbin ~
      [root@localhost kget]# dirs -p -v
       0  /usr/share/kde4/apps/kget
       1  /usr/local/sbin
       2  ~


      说明: dirs的 -p参数可以每行一个目录的形式显示堆栈中的目录列表
                  -v参数可以在目录前加上编号
                  注意:有 -v时,不添加 -p也可以每行一个目录的形式显示
      说明之二:我们可以看到:最近压入堆栈的目录位于最上面

      2,如何在最近的两个目录之间切换?

       在最近的两个目录之间切换:用pushd不加参数即可

       [root@localhost kget]# pushd /boot/grub/
       /boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~
       [root@localhost grub]# dirs -v
       0  /boot/grub
       1  /usr/share/kde4/apps/kget
       2  /usr/local/sbin
       3  ~
       [root@localhost grub]# pushd
       /usr/share/kde4/apps/kget /boot/grub /usr/local/sbin ~
       [root@localhost kget]# dirs -v
       0  /usr/share/kde4/apps/kget
       1  /boot/grub
       2  /usr/local/sbin
       3  ~
       [root@localhost kget]# pushd
       /boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~
       [root@localhost grub]# dirs -v
       0  /boot/grub
       1  /usr/share/kde4/apps/kget
       2  /usr/local/sbin
       3  ~

       说明:可以看到,用pushd不加参数在最近的两个目录之间切换时,
            当前目录总是位于堆栈的最上面

      3,如何在多个目录之间切换?

       用 pushd +n即可
       说明:
       n是一个数字,有此参数时,是切换到堆栈中的第n个目录,并把此目录以堆栈循环的方式推到堆栈的顶部
       需要注意: 堆栈从第0个开始数起

       看例子:

       [root@localhost grub]# dirs -v
       0  /boot/grub
       1  /usr/share/kde4/apps/kget
       2  /usr/local/sbin
       3  ~
       [root@localhost grub]# pushd +2
       /usr/local/sbin ~ /boot/grub /usr/share/kde4/apps/kget
       [root@localhost sbin]# dirs -v
       0  /usr/local/sbin
       1  ~
       2  /boot/grub
       3  /usr/share/kde4/apps/kget

       4,如何把目录从堆栈中删除?
       用popd即可

       看例子:
       [root@localhost sbin]# dirs -v
       0  /usr/local/sbin
       1  ~
       2  /boot/grub
       3  /usr/share/kde4/apps/kget
       [root@localhost sbin]# popd
       ~ /boot/grub /usr/share/kde4/apps/kget
       [root@localhost ~]# dirs -v
       0  ~
       1  /boot/grub
       2  /usr/share/kde4/apps/kget

       [root@localhost ~]# popd +1
        ~ /usr/share/kde4/apps/kget
       [root@localhost ~]# dirs -v
       0  ~
       1  /usr/share/kde4/apps/kget

       说明:可以看到popd不加参数的运行情况:
            popd把堆栈顶端的目录从堆栈中删除,并切换于位于新的顶端的目录
       说明之二: popd 加有参数 +n时,
       n是堆栈中的第n个目录,表示把堆栈中第n个目录从堆栈中删除


    四,多学一点知识

       1,pushd和popd都可以只影响堆栈而不切换目录
         用 -n参数即可
         
        看例子:
        [root@localhost ~]# dirs -v
        0  ~
        1  /usr/share/kde4/apps/kget
        [root@localhost ~]# pushd -n /boot/grub
        ~ /boot/grub /usr/share/kde4/apps/kget
        [root@localhost ~]# dirs -v
         0  ~
         1  /boot/grub
         2  /usr/share/kde4/apps/kget

        2, dirs可以清空目录堆栈
          用 -c参数即可

         看例子:
         [root@localhost ~]# dirs -v
         0  ~
         1  /boot/grub
         2  /usr/share/kde4/apps/kget
         [root@localhost ~]# dirs -c
         [root@localhost ~]# dirs -v
         0  ~

         说明:  位于堆栈顶部的目录是当前目录,它不能被pop出去的

  • 相关阅读:
    siteserver学习笔记
    移动端开发适配的2中方案
    移动端中适配问题
    2倍图3倍图怎么用
    常用的网站收藏
    关于用h5实现移动端的知识梳理
    悬浮广告代码
    vue中添加echarts
    VUE中给template组件加背景
    纯CSS控制背景图片100%自适应填充布局
  • 原文地址:https://www.cnblogs.com/wangkangluo1/p/2530402.html
Copyright © 2011-2022 走看看