>

Linux指令详解pushd急迅切换目录

- 编辑:乐百家599手机首页 -

Linux指令详解pushd急迅切换目录

Linux下目录栈操作详解,linux目录详解

Linux切换目录一直都以用cd命令的,然如今日驾驭到目录栈操作,那个用于多目录切换简直方便太多了,

  • 先贴一条定义:
    (stack)又名货仓,它是一种运算受限的线性表。其范围是仅同意在表的一端进行扦插和删除运算。这一端被叫作栈顶,绝对地,把另一端称为栈底。向贰个栈插入新因素又称作进栈、入栈或压栈,它是把新因素放到栈顶成分的方面,使之成为新的栈顶成分;从三个栈删除成分又称作出栈或退栈,它是把栈顶成分删除掉,使其相近的因素变为新的栈顶成分。精通概念我们就相比好明白目录栈了,就好像叠罗汉同样,只可以一层一层的往上放,上面的机动形成最新的栈。
  • 压入栈操作命令pushd:自笔者想要在/usr/local/tomcat7-1这些目录,/dev那一个目录和/var下进展迅速切换。

    • 先是步登入服务器暗许停留在~用户主目录下。以往压入二个自己想要切换的目录,命令:pushd /usr/local/tomcat7-1。

      此时大家能够见到已经切换来了/usr/local/tomcat7-1目录下了,并且输出内容为/usr/local/tomcat7-1 ~,这时大家默许用户主目录~产生了尾部栈,/usr/local/tomcat7-1目录形成了最上端栈。

    • 第二步,大家继续压入/dev目录入栈,pushd /dev 那时眼下操作目录已经产生/dev下的同不常候,输出目录栈最上端栈为/dev目录,
    • 其三部,大家承袭压入/var到目录栈。pushd /var 那时大家来看日前操作目录已经产生/var。并出口最上部栈为/var目录
    • 最近大家创造了四个索引栈/var, /dev, /usr/local/tomcat7-1, ~,从左到右依次为顶端栈,从顶上部分栈一向到底部栈,顺序是从左到右依次从0开端盘算地点。所以顶上部分栈的职位为0,次最上端为1,依次往右。
    • 展现目录栈用dirs命令
    • 当前目录为/var,火速切换成次顶端栈用pushd命令,目录就能够切换成/dev目录下。
    • 现阶段了目录是/var,快速切换成用户主目录,约等于尾巴部分栈的时候,用pushd 3命令。顶端栈地方为0。也得以pushd -0,从右侧往左以0开始。
  • 弹出栈操作命令popd: 目录栈弹出操效能popd命令,popd命令暗中认可弹出最上端栈, N:将第N个目录删除(从左侧数起,数字从0初步);-N:将第N个目录删除(从侧边数起,数字从0开端)。

查阅商量

Linux切换目录向来都以用cd命令的,然则后天询问到目录栈操作,这些用于多目录切换差相当少方便太多了...

三、pushd、popd、dirs

Linux的多目录命令提醒符新疆中华南理经济学院程公司作是一种切肤之痛的事务,但以下这么些应用linux cd命令和pushd切换目录的手艺有利于你节省时间和精力 。

  用pushd实未来区别目录间切换。

  在命令行格局下,当您办事在分化目录中,你将开采你有点不清时间都浪费在重复输入上。借使这个目录不在同二个根目录中,你只可以在转移时输入完整的路线名,那难免令人有些不便忍受。但你可以用以下的二个或三个步骤来防止全数盈余的输入:用命令行解释器中的历史记录,或然用命令行函数pushd。

  用命令行解释器中的历史记录的利润是只需按非常少的键。在命令行中用向上的箭头来搜寻你用过的授命,直到你找到,然后按回车键。倘使你所切换的多个目录在任何驱动器的子目录结构中很类似,那用解释器中的历史记录也许是你最棒的挑选。

  但是,即使您在八个完全分化的门径间转移的话,你恐怕很愿意采用pushd那么些函数,你能够用它创造三个目录仓库(在内存中的二个列表)。

  注释:缺省气象下,pushd函数也许不包涵在你的Linux中;但它包容在Red Hat和用Red Hat驱动的系列中。尽管您的类别中从不pushd函数,你可以在ibiblio.org网址上下载相关的函数工具。

  这里说一下怎么用pushd。假若你未来工作在/usr/share/fonts目录下。你需求对/usr/share/fonts做一些改成,你将再三的在三个目录间切换。发轫在二个目录下,用pushd函数切换来另贰个目录。在大家的例子中,先导在/usr/share/fonts下,你键入pushd/opt/wonderword/fonts,然后按回车键。未来,你将在下一行察看酒馆中的内容:/opt/wonderword/fonts /usr/share/fonts。

  正如您所观察的,当您键入pushd和三个路径名时,将活动发出一个库房,内容是您键入的目录名和您当前职业的目录名。在大家的事例中,你所键入的路线(/opt/wonderword/fonts)在仓房的最上端。

  火速回到上一级目录,你能够直接键入pushd,假使不跟路线名,你将赶回到仓库中前二个索引的上一层目录。

  倘诺您须求从商旅中剔除一个索引,键入popd,然后是目录名称,再按回车键。想查看仓库中目录列表,键入dirs,然后按回车键。popd和dirs命令也是常用函数中的一有的。

 

 

让切换目录更有益于: pushd,popd,dirs,cd -

一,为什么要动用那多少个指令?
   只怕大家会有疑问,为啥要利用那多少个指令,
   难道用cd不就能够切换目录了呢?
   没有错,使用cd就足以切换来供给拜候的目录,
   然则临时会是二个路子相当短,档期的顺序非常多的目录,进到此目录下后,那时大家比异常的大心运维了 cd命令,
   理当如此,大家回来了协和的home目录,那时尽管想回去如何做?

   还只怕有:因为做事的要求,大家要求不停在多少个很深层的目录以内切换,不独有二个,
   那么就算有tab键帮衬,大家也会因为四个cd命令费用非常多时刻,如何在四个目录以内切换时能更便利些
   pushd,popd是我们的好帮手

   表明:  pushd,popd,dirs那多少个咱们讲到的命令是bash内建的命令,
         所以只要登陆到了bash,那多少个指令就足以接纳了

二,怎么样在多少个目录以内切换?

  若是只是在多少个目录以内切换,那么还不用采用pushd,
  那时只需使用 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]#

  怎么样?在五个目录以内切换特别有助于,没有须要再输入十分短的路子

  说明:
  为啥cd -能够回来前贰个目录?
  这是因为 -在此处等同于 $OLDPWD变量,
  此主题素材得以参见bash的info信息,
  cd 一项有有关的辨证: An argument of - is equivalent to $OLDPWD.  

  $OLDPWD变量就是bash所记录的前叁个索引
  相当于说:$OLDPWD和-相等
 
  下边大家再看八个例子:
  [root@localhost ~]# cd /usr/share/kde4/apps/kget/pics/
  [root@localhost pics]# echo $OLDPWD;
  /root
  [root@localhost pics]# cd $OLDPWD
  [root@localhost ~]# echo $OLDPWD;
  /usr/share/kde4/apps/kget/pics
  [root@localhost ~]# cd $OLDPWD;
  [root@localhost pics]# echo $OLDPWD;
  /root

   我们能够获得结构:  用cd -和cd $OLDPWD都足以在近来所操作的七个目录以内进行切换

三,怎样在几个目录以内切换?
  因为 cd -和 cd $OLDPWD都以只支持近些日子操作的四个目录,所以要在多少个目录以内操作时,
  大家供给动用 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出去的

 

   [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  ~

Linux指令详解pushd急忙切换目录

指令:pushd
在差别目录间切换

在命令行方式中,当要求在差异目录中不停的切换时会开采不停的输入目录很麻烦,那一年就要求用上pushd函数了

pushd专门的学业原理:
pushd将钦定目录压入当前shell维护的目录栈,进而能够实现三个区别渠道之间的切换.

Ps:暗中同意景况下,pushd函数恐怕不满含在您的Linux中,但存在于red Hat和用Red Hat驱动的系统中。

语法:
# pushd [-n] [ N | -N | dir]

参数:

-n: 只将目录加入到目录栈中,不切换目录
 N: 将第N个目录移至栈顶(  表示从左或上边(栈顶)数起,数字从0开始,栈顶表示为 0)
-N: 将第N个目录移至栈顶(- 表示从右或下边(栈底)数起,数字从0开始,栈底表示为-0)
dir:指定需要加入目录栈的目录,并同时切换到该目录

Ps:
1、 不带参数时pushd命令将沟通目录栈栈顶的五个目录(等同于cd -)
2、 如果参加目录时尚未点名目录名称,则会将前段时间的劳作目录置入目录栈的最上端
3、 假设出席目录时不曾点名目录栈的职位,会置入目录栈的顶上部分
4、 最左侧或地方表示栈顶,最右或最上边边表示栈底
5、 目录栈的第0个目录(即栈顶目录),始终是当前目录
6、 最终三个被归入堆中的目录在堆的最最上端
7、 当目录栈为空时,目录栈的栈底保存的是奉行 pushd 命令时的劳作目录
乐百家服务器,8、 当加入pushd和三个路线名时,将自行发出贰个库房,内容是加盟的目录名和当前专门的学问的目录名

实例
以后有如下多个目录须要常常的切换:/doiido/boy : /home/user : /etc/sshd

1:首先将五个目录放入pushd栈中
# pushd /doiido/boy
/doiido/boy ~
# pushd /home/user
/home/user /doiido/boy ~
# pushd /etc/ssh
/etc/ssh /home/user /doiido/boy ~
2:查看栈中的内容
dirs命令是查看目录栈中的内容
# dirs -v
0 /etc/ssh
1 /home/user
2 /doiido/boy
3 ~
3:切换
3.1:在/etc/ssh和/home/user之间相互切换
# pushd

3.2:切换到/doiido/boy目录
# pushd 2

4:清空
# dirs -c
其他:
1、假如急需从目录栈中剔除二个目录,则运用popd。具体详细popd使用方法

2、如果想查看目录栈中目录列表,则应用dirs。具体详见dirs使用办法

指令:pushd 在分歧目录间切换 在命令行形式中,当必要在分裂目录中不停的切换时会开采不停的输入目录很...

二、cd   -

          cd - 重返步入当前目录前所在目录

    2, dirs能够清空目录货仓
      用 -c参数就能够

一、cd   ~

           切换成用户目录

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

   用 pushd n即可
   说明:
   n是三个数字,有此参数时,是切换成饭馆中的第n个目录,并把此目录以货仓循环的情势推到酒馆的最上部
   须要注意: 旅馆从第0个开首数起

   在近日的两个目录以内切换:用pushd不加参数就能够

   表明:能够看来,用pushd不加参数在不久前的多个目录以内切换时,
        当前目录总是位于货仓的最下边

  $OLDPWD变量就是bash所记录的前二个索引
  也正是说:$OLDPWD和-相等
  
  下边咱们再看一个事例:
  [root@localhost ~]# cd /usr/share/kde4/apps/kget/pics/
  [root@localhost pics]# echo $OLDPWD;
  /root
  [root@localhost pics]# cd $OLDPWD
  [root@localhost ~]# echo $OLDPWD;
  /usr/share/kde4/apps/kget/pics
  [root@localhost ~]# cd $OLDPWD;
  [root@localhost pics]# echo $OLDPWD;
  /root

   [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
www.lo599.com,   1  ~
   2  /boot/grub
   3  /usr/share/kde4/apps/kget

  pushd:切换来作为参数的目录,并把原目录和当前目录压入到二个虚拟的库房中
         借使不点名参数,则会回去前叁个目录,并把库房中近日的四个目录作调换

本文由乐百家服务器发布,转载请注明来源:Linux指令详解pushd急迅切换目录