Linux/Mac的目录切换

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

无论是Mac还是Linux,其实都一样,在终端下经常都需要进行目录的切换,但每次都用cd命令有点太繁琐了,特别是在目录很长,文件夹名字很长的情况下。本文主要是对终端下的一些目录切换名字的总结。

1. 两个目录之间的切换

-代表的是前一个目录,如果只在两个目录中切换,这个命令就够了,-等价于$OLDPWD$OLDPWD也是前一个目录。其目录切换的形式如下:

$ cd ~/MyEclipse/
$ cd -
/Users/***/Hexo
$ cd -
/Users/***/MyEclipse
$ cd -
/Users/***/Hexo
$  cd -
/Users/***/MyEclipse

2. 多个目录之间的切换

多个目录的切换要用到pushd,popd,dirs命令,下面是三个命令的解释:

  • dirs:显示目录栈

  • pushd:将目录压入目录栈,并切换目录(虚拟堆栈)

  • popd:将目录弹出目录栈,并切换目录(虚拟堆栈)

多余的话不说,直接上例子更直观:

# pushd会将参数目录和当前目录压入目录栈(虚拟堆栈)中,并跳转到参数目录,压入目录栈是按顺序压入的,~是当前用户的根目录
$ pushd Hexo
~/Hexo ~
$ pwd
/Users/***/Hexo

# pushd不加参数,回到前一个目录,并将当前目录压入目录栈中
$ pushd
~ ~/Hexo
$ pwd
/Users/***


# dirs查看目录栈中的目录
$ dirs
~/Hexo ~

# dirs -v显示目录的编号,并将目录按行排列,0代表新压入目录栈的目录
$ dirs -v
 0  ~/Hexo
 1  ~


# 压入一个新的目录到目录栈
$ pushd MyEclipse/
~/MyEclipse ~ ~/Hexo
$ pwd
/Users/***/MyEclipse


# dirs -p是按行显示目录栈中的目录
$ dirs -p
~/MyEclipse
~
~/Hexo

# popd是将栈顶的目录弹出,即编号为0的目录,并将目录切换到目录弹出后的栈顶目录
$ popd
~ ~/Hexo
$ pwd
/Users/***

$ popd
~/Hexo

# 如果栈中只有一个目录,即当前目录,是不能使用popd的
$ popd
-bash: popd: directory stack empty

# 如果栈中只有一个目录,是不能使用pushd的
$ pushd
-bash: pushd: no other directory


# dirs -c 清空目录栈,只剩当前目录在目录栈中
dirs -c



$ pushd MyEclipse/
~/MyEclipse ~

$ pushd ~/Hexo/
~/Hexo ~/MyEclipse ~

$ pushd ~/Practice/
~/Practice ~/Hexo ~/MyEclipse ~

$ dirs -v
 0  ~/Practice
 1  ~/Hexo
 2  ~/MyEclipse
 3  ~


# popd +n 弹出目录栈中指定位置的目录,并将目录切换到栈顶目录
$ popd +2
~/Practice ~/Hexo ~

$ dirs -v
 0  ~/Practice
 1  ~/Hexo
 2  ~

# push +n 将目录切换到指定位置的目录,并将其压入目录栈栈顶
$ pushd +2
~ ~/Practice ~/Hexo
$ dirs -v
 0  ~
 1  ~/Practice
 2  ~/Hexo

备注:如例子所示,如果只有两个目录的情况下,可以一直用pushd切换目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值