一、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出去的

cd及目录快速切换的更多相关文章

  1. Linux快速目录间切换cd pushd popd

    1.   cd -     当前目录和之前所在的目录之间的切换 2.   cd + Alt . 用上次命令的最后一个目录路径 要用上上次命令的最后一个目录,就Alt+.两次就可以了 3.   push ...

  2. linux shell 脚本攻略学习15--如何只列出目录,如何快速切换目录

    工作中经常遇到关于目录方面的问题,例如,如何只列出当前目录下的所有目录,以及如何快速高效的切换目录,而不需要使用鼠标,下面将简单介绍关于这两方面的解决方案: 一.如何只列出目录? 看似简单的任务,其实 ...

  3. 在命令行中使用pushd和popd进行快速切换目录

    当频繁的切换三个或三个以上的目录的时候,可以使用pushd命令.每次使用目录路径被存储在栈中,然后用pushd和popd操作在目录之间切换. 例如: [root@gameserver1 ~]# pus ...

  4. 转Linux 下用alias 设置命令别名快速切换常用命令

    https://blog.csdn.net/u012830148/article/details/80618616 在linux下开发,经常需要切换目录,如果目录很长则切换起来非常的麻烦,针对一些常用 ...

  5. 一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等)

    本篇文章记录的是一些有用的 Emacs 配置,有些是自己原创,有些是借鉴别人(能记起来出处的我放了链接). 规定:C 代表 Ctrl,M 代表 Alt. 1.设置一次跳跃 n 行的快捷键 按 C-M- ...

  6. 如何固定OpenERP顶的主菜单,方便滚动至第二屏以及多屏时,快速切换主菜单

    如何固定OpenERP顶的主菜单,方便滚动至第二屏以及多屏时,快速切换主菜单 作者:广州-步科,来自OpenERP应用群() 将“addons\web\static\src\css”目录下的“base ...

  7. 多项目并行开发如何做到快速切换——sublime Text3

    sublime text有一个很人性化的功能,就是打开窗口的时候,它会把上一次关闭时的编辑器工作区状态完全复原(不论文件是否已经保存). 只有一个项目的时候,这个功能非常方便,可以保证重启电脑后cod ...

  8. mac平台多个php版本快速切换

    mac平台多个php版本快速切换 要求所有php版本都是由brew安装 使用brew安装php多版本方法 # brew install php56 # brew install php70 安装切换工 ...

  9. 使用FreePic2Pdf导出书签至Word建立层级目录——快速初始化Word笔记本目录

    使用FreePic2Pdf导出书签至Word建立层级目录 --快速初始化Word笔记本目录 文:安徽师范大学2014级计算机科学与技术 王昊 (Get Contact:441301158@qq.com ...

随机推荐

  1. tf.contrib.rnn.static_rnn与tf.nn.dynamic_rnn区别

    tf.contrib.rnn.static_rnn与tf.nn.dynamic_rnn区别 https://blog.csdn.net/u014365862/article/details/78238 ...

  2. 使用word2vec训练中文词向量

    https://www.jianshu.com/p/87798bccee48 一.文本处理流程 通常我们文本处理流程如下: 1 对文本数据进行预处理:数据预处理,包括简繁体转换,去除xml符号,将单词 ...

  3. Sublime Es6教程1-环境搭建

    因为现在网上的教程都不靠谱,于是决定自己跳坑自己写,分为三块来玩: 一.环境搭建 二.语法讲解 三.项目实战 很多时候,你想搞一个东西,却因为环境没有搭建好,而不能很开森的探索未知的世界,多年的编程经 ...

  4. 看见上帝的 10 个公式……

    原文 Top Ten Greatest Equations Ever 本文内容 No.1 麦克斯韦方程组 No.2 欧拉方程 No.3 牛顿第二定律 No.4 毕达哥拉斯定理 No.5 薛定谔方程 N ...

  5. 获取屏幕的宽和高-Display中getHeight()和getWidth() 官方已废弃

    getHeight()和getWidth() deprecated in API level 13 Display dp=getWindowManager().getDefaultDisplay(); ...

  6. SpringBoot添加对Mybatis的支持

    1.修改maven配置文件pom.xml,添加对mybatis的支持: <dependency> <groupId>org.mybatis.spring.boot</gr ...

  7. Mac WIn7 QQ聊天记录互导 聊天记录合并

    也许等哪天老了回过头来看看.说不定还有一丝欢乐. 有几个方法可以实现 一.dropbox数据同步 二.QQ会员 三.下面方法 1.因为现在的Mac QQ还不支持聊天记录的导入导出.所以只能手动了 如果 ...

  8. asp.net正则表达式

    导入引用命名空间:using System.Text.RegularExpressions //Regex类,常用方法: //摘要:1.IsMatch(String);2.IsMatch(String ...

  9. 使用树莓派3获取CPU温度

    一.命令: cat /sys/class/thermal/thermal_zone0/temp 二.上图:

  10. SSM实战——秒杀系统之创建项目、管理依赖、设计数据库

    注:本项目使用Myeclipse开发. 一:项目创建 1:使用Myeclipse创建一个web project,命名为MySeckill,并转换为Maven项目. 2:创建项目文件目录如下: 上面四个 ...