linux 使用cd 命令行,Linux cd命令行工具使用的一些小技巧

Linux cd命令行工具使用的一些小技巧

linux

前言

在linux系统中,我们切换目录使用cd命令来进行操作,并且我们需要经常在两个目录间来回切换。如果这两个目录在完全不同的两个路径下,比如说,分别在 /home/ 和 /usr/ 下。你会怎么做呢?

其中,最简单直接的方式就是输入这些目录的全路径。虽然这种方式本身没什么问题,但是却很浪费时间。另外一种方式就是打开两个终端窗口分别进行操作。但是这两种方式使用起来既不方便,也显得没啥技术含量。

你应该感到庆幸的是,还有另外一种更为简捷的方法来解决这个问题。你需要做的就是先手动切换到这两个目录(通过 cd 命令分别加上各自的路径),之后你就可以使用 cd - 命令在两个目录之间来回快速切换了。

实例

例如,我现在在下面两个目录下面:

[ggyy@gy-vm02 nginx]$ pwd

/usr/local/nginx

然后我又切换一下目录

[ggyy@gy-vm02 nginx]$ cd/data/configdb/

[ggyy@gy-vm02 configdb]$ pwd

/data/configdb

现在,我可以很方便的使用下面的命令来向前、向后快速地切换到两个目录:

[ggyy@gy-vm02 configdb]$ cd-

/usr/local/nginx

[ggyy@gy-vm02 nginx]$ cd-

/data/configdb

[ggyy@gy-vm02 configdb]$ cd-

/usr/local/nginx

[ggyy@gy-vm02 nginx]$ cd-

/data/configdb

如果你在操作的过程中使用 cd 加路径的方式切换到第三个目录下,那么 cd - 命令将应用于当前目录及第三个目录之间进行切换。

原理

为什么使用‘cd -’命令能自由切换两个目录?

我们知道,cd 命令需要加上一个路径作为它的参数。现在,当 - 符号作为参数传输给 cd 命令时,它将被 OLDPWD 环境变量的值所替代。

[ggyy@gy-vm02 nginx]$ echo $OLDPWD

/data/configdb

[ggyy@gy-vm02 nginx]$ cd-

/data/configdb

[ggyy@gy-vm02 configdb]$ echo $OLDPWD

/usr/local/nginx

[ggyy@gy-vm02 configdb]$ cd-

/usr/local/nginx

现在应该明白了吧, OLDPWD 环境变量存储的是前一个操作目录的路径。

毫无疑问, cd 命令设置了 OLDPWD 环境变量值。因此每一次你切换操作目录时,上一个目录的路径就会被保存到这个变量里。这还让我们看到很重要的一点就是:任何时候启动一个新的 shell 实例(包括手动执行或是使用 shell 脚本),都不存在 ‘上一个工作目录’。

现在我重新打开一个shell

[ggyy@gy-vm02~]$ cd-

-bash:cd:OLDPWDnotset

这也很符合逻辑,因为 cd 命令设置了 OLDPWD 环境变量值。因此,除非你至少执行了一次 cd 命令,否则 OLDPWD 环境变量不会包含任何值

cd - 和 cd $OLDWPD 命令的执行结果并非在所有环境下都相同。比如说,你重新打开一个新的 shell 窗口时

[ggyy@gy-vm02~]$ cd-

-bash:cd:OLDPWDnotset

[ggyy@gy-vm02~]$ cd $OLDPWD

[ggyy@gy-vm02~]$

从上面的截图可以清楚的看出,当执行 cd - 命令提示未设置 OLDPWD 值时, cd $OLDPWD 命令没有报任何错;实际上,它把当前的工作目录改变到用户的 home 目录里。

那是因为 OLDPWD 变量目前还没有被设置, $OLDPWD 仅仅是一个空字符串。因此, cd $OLDPWD 命令跟 cd 命令的执行结果是一致的,默认情况下,会把用户当前的工作目录切换到用户的 home 目录里。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值