`
gelongmei
  • 浏览: 211290 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

cd及目录快速切换

阅读更多
cd及目录快速切换

一、cd   ~
           切换到用户目录

二、cd   -
          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出去的
分享到:
评论

相关推荐

    快速切换文件夹目录全攻略(原)

    `cmd.exe`是Windows的命令行解释器,通过它,用户可以使用命令行语法如`cd`(改变目录)快速切换目录。PowerShell是更现代的版本,提供了更多功能和改进的语法。 在描述中提到的"方法三的可执行文件cmd.exe",指的...

    Linux操作系统中巧用CD和Pushd切换目录

    pushd命令可以创建一个目录堆栈(在内存中的一个列表),以便快速切换目录。例如,假设你现在工作在/usr/share/fonts 目录下。你需要对/usr/share/fonts 做一些改动,你将频繁的在两个目录间切换。开始在一个目录下...

    能的cd命令:它可以记住您经常访问的目录,并根据您的习惯性地导航到这些目录,提高了命令行操作的效率和便捷性

    通过学习和使用这种智能`cd`命令,用户可以快速地在经常访问的目录间切换,而无需手动输入完整路径或者反复使用`cd ..`来逐级返回上级目录。 实现这一功能的关键在于它会记录用户的操作历史,分析出最常访问的目录...

    cdirs_用于在linux中快速切换目录,对庞大的项目工程效果显著.其基于标签且无缝取代cd命令,_cdirs.zip

    cdirs_用于在linux中快速切换目录,对庞大的项目工程效果显著.其基于标签且无缝取代cd命令,_cdirs

    Linux基础课件-- Linux系统目录切换-cd命令.pptx

    1. `cd 目录名`:将当前目录切换到指定的绝对或相对路径的目录。 2. `cd ..`:返回上一级目录。这是一个特殊用法,不直接指定目录名。 ### **三、cd命令的基本用法** 1. **切换到绝对路径**: - **用法1**:`cd /...

    matlab开发-cd

    4. **历史记录**:提供类似shell的上一条命令历史功能,方便用户快速切换回先前的工作目录。 5. **错误处理**:包含完善的错误处理机制,例如当指定的目录不存在时,给出友好的提示信息。 `cd.m`是这个自定义函数的...

    linux-给bash添加路径快速切换方法跨shell同步路径

    这里,`mydir`是你自定义的快捷键,`/path/to/directory`替换为你想要快速切换到的目录路径。 - 保存文件并关闭,然后执行`source ~/.bashrc`或`source ~/.bash_profile`使更改生效。 - 现在,只需在终端输入`...

    在conda prompt中,进入保存文件的目录下

    在计算机操作系统中,目录...熟练掌握这些基本的命令行操作对于日常的开发工作至关重要,尤其是当处理自动化脚本或者需要在多个文件夹之间快速切换时。熟悉这些命令能提高效率,使你在处理文件和目录时更加得心应手。

    CD命令(学Perl用到)

    CD 命令是 DOS 操作系统中的一种基本命令,用于切换当前目录。CD 命令的使用非常广泛, 在日常的文件管理和文件夹操作中扮演着重要的角色。今天,我们将详细介绍 CD 命令的使用方法和一些常用的 DOS 命令。 一、CD ...

    linux-bd在linux中快速回到一个父目录

    "bd" 就是一个这样的工具,它允许用户快速地返回到一个父目录,而无需手动输入多级的"cd ../../.." 命令。这个工具对于频繁在目录结构中穿梭的开发者来说非常有用。 标题中的"linux-bd"指的是这个工具,它是一个...

    Dos下的cd命令到底怎么用_DOS命令教程

    3. **切换到根目录**:输入`cd \`可以快速回到当前驱动器的根目录。 4. **相对路径与绝对路径**:上述例子中,"C:\Users"是绝对路径,因为它包含了从根目录开始到目标目录的完整路径。相对路径则是相对于当前目录的...

    Linux命令基础2:cd命令和延伸

    - `cd -`:这个命令不仅用于返回先前的目录,还可以在两个最近的目录之间快速切换。 - `cd -N`:这里的`N`是一个正整数,表示返回历史记录中的第`N`个目录。例如,`cd -2`会切换到倒数第二个目录。 理解并熟练...

    cdto2.6 直接安装

    "cdto2.6 直接安装"是一个适用于Mac OS X 10.10 Yosemite操作系统的实用工具,它的设计目的是为了简化用户在Finder中快速打开终端并切换到当前目录的过程。这个应用允许用户通过“command(命令)+拖动”的方式将其...

    Linux目录切换实现代码案例

    如果要在多个目录间快速切换,`cd -` 命令特别有用,它会带你回到前一个工作目录。 在提供的代码案例中,我们可以看到用户 `yangw` 在不同的目录之间进行切换。例如,`cd -` 命令被用来在 `/home/yangw/RK3288_...

    matlab开发-增强更改的目录是CD

    3. **历史记录功能**:`ecd.m` 还可能保存用户的目录切换历史,方便快速返回到之前的工作目录。 4. **参数化切换**:允许用户通过提供相对路径或参数来切换到特定工作目录,比如项目根目录或其他常用路径。 `...

    2.linux命令集之cd命令

    通过熟练掌握`cd`命令的各种用法,用户能够更高效地在文件系统中移动,管理和操作文件及目录。无论是系统管理员还是普通用户,理解这些基本的导航技巧都将极大地提升他们在Linux环境中的工作效率。

    samurai:cd武士

    在计算机领域,尤其是Linux和Unix系统中,"cd"是一个非常基础且常用的命令,用于在终端或命令行界面中切换当前工作目录。而“CD武士”可能是对熟练掌握这一技能的用户的形象比喻,意味着他们能够快速、精准地在文件...

Global site tag (gtag.js) - Google Analytics