Linux下如何高效的切换目录

Linux下如何高效的切换目录

来源:脚本之家微信公众号
作者:良许

Linux 下对于目录的切换,大家肯定会想到一个命令:cd 命令。这个是 Linux 下最最最最基本不过的命令了。
cd 命令确实很方便,但如果需要频繁在下面的目录切换,你可能要怀疑人生了:

/home/alvin/projects/blogdemos/linux-system-programming/thread
/home/alvin/projects/blogdemos/diff
/home/harry/study/日本文化/中日交流/影视业/动作片

如果只会 cd 命令的话,那么就需要不停地 cd ,直到你发疯。
在这种情况下,我们如何高效进行目录切换呢?给大家介绍三个命令:pushd 、 popd 、 dirs 。
这三个命令其实都是对 目录栈 进行操作
(敲黑板了,划重点!!)

目录栈是一个保存目录的栈结构,目录栈结构的顶端永远都存放着当前目录

栈都是遵循着后进先出的原则。在栈结构里,后面进栈的元素,将先出栈。

  1. dirs (显示目录栈内容)
  • 常见选项及含义
    • -p ( 每行显示一条记录 )
    • -v ( 每行显示一条记录,同时展示该记录在栈中的index )
    • -c ( 清空目录 )
  • 区别: -v-p 的区别: -v 选项会显示每条记录在栈中的索引
    最顶部的元素永远跟当前目录一致,如果在其他目录下查看目录栈,第一个元素将相应发生变化。
    Linux下如何高效的切换目录_第1张图片
  1. pushd (压入目路栈)

每次 push 命令执行完成后,默认都会执行一个 dirs 命令来显示目录栈的内容。

  • 用法

    • pushd + 目录
      push 后面直接跟目录使用,会切换该目录并将该目录置于目录栈的栈顶
      Linux下如何高效的切换目录_第2张图片

    • pushd (不带任何参数)
      将目录栈最顶端的两个目录进行交换。 目录栈第一个元素与当前目录是相关的,所以第一个元素发生变化时,当前目录将对应切换,反之亦然。
      Linux下如何高效的切换目录_第3张图片

    • pushd +/- n
      直接切换到对应索引值的目录。注意:

      加号:目录栈由上往下数
      减号:目录栈由下往上数

  • ?问题: 如果两个或多个路径很长的目录之间频繁切换,如何操作?

  1. 用 pushd + 目录 讲几个路径添加到目录栈中;
  2. 再用 pushd +/- n 在不用的目录间快速切换

Linux下如何高效的切换目录_第4张图片
3. popd (弹出目录栈)

每次执行完 popd 命令后,默认会执行一个 dirs 命令来显示目录栈的内容。

  • 用法
    • popd (不带任何参数)
      将目录栈中的栈顶元素出站。栈顶元素发生变化,目录也发生相应的切换
      Linux下如何高效的切换目录_第5张图片
    • popd +/- n
      将目录栈的中的第 n 个元素删除。
      加号:目录栈由上往下数
      减号:目录栈由下往上数

      Linux下如何高效的切换目录_第6张图片

ps: 如有错误,欢迎批评指正,谢谢!

你可能感兴趣的:(Linux进阶)