第一篇博客,写点自己一直很想分享的东西!
熟悉基于Linux内核所衍生的各种发行版(RedHat, Centos, Fedora)操作系统的各位大佬,肯定对cd命令非常了解,知道它是用于目录切换的,今天要介绍一个与cd命令有异曲同工之妙的pushd命令,用它切换目录来的更高效。
cd命令与pushd命令的不同
cd命令用于切换目录的时候,只能是一步一步的实现,如果在同一个绝对路径下切换,可以使用 cd ./ cd ../ 甚至是 cd ../../,比如:
当前所在目录为:
/home/user1/firstDir/secondDir/thirdDir
且在当前目录下有两个文件夹:
TestData ResultData
如果现在想要进入ResultData目录下,可以执行:
cd ./RestultData
如果不要进入ResultData目录而想返回secondDir 或者 firstDir目录下,可以执行:
cd ../ 或者 cd ../../
如果此时想要进入另一个绝对路径下的目录(比如/usr/local/gdal221/lib下),就要从根目录(/)重新写起:
cd /usr/local/gdal221/lib
然后如果又想要配置操作系统的yum仓库的话,就要用cd命令这样执行:
cd /etc/yum.repos.d/
从刚一开始所处的当前目录 /home/user1/firstDir/secondDir/thirdDir 想要切换到 /usr/local/gdal221/lib 目录时,如果换做是用 pushd 命令来执行的话,像下面这样就可以:
pushd /usr/local/gdal221/lib
pushd 命令通常要和 dirs -v 命令结合来使用,如果此时执行dirs -v 命令,可以看到如下结果:
dirs -v 0 /usr/local/gdal221/lib 1 /home/user1/firstDir/secondDir/thirdDir
当前所处目录为 /usr/local/gdal221/lib, 如果此时再要进入 /etc/yum.repos.d/ 目录配置yum仓库的话,用 pushd 以及 dirs -v 命令来执行,会是如下结果:
pushd /etc/yum.repos.d/ /etc/yum.repos.d/ /usr/local/gdal221/lib /home/user1/firstDir/secondDir/thirdDir dirs -v 0 /etc/yum.repos.d/ 1 /usr/local/gdal221/lib 2 /home/user1/firstDir/secondDir/thirdDir
想必大家看到这里就会有些明白了,用 pushd 命令切换目录的效果像是将执行过的一条条目录路径塞进一个容器里面去,先执行过的目录路径会在容器的最下面,后执行的目录路径会置于之前路径的上层,当前所处的工作路径会置于整个路径容器的顶层。说它比 cd 命令更高效,下面要说的正是它的高效之处。
如果此时想要切换到 /home/user1/firstDir/secondDir/thirdDir 目录下,用 pushd 命令只需这样执行即可:
pushd +2 /home/user1/firstDir/secondDir/thirdDir /etc/yum.repos.d/ /usr/local/gdal221/lib
用 pwd 命令查看当前所处工作路径:
pwd /home/user1/firstDir/secondDir/thirdDir
同时执行 dirs -v 命令查看路径容器的情况:
dirs -v 0 /home/user1/firstDir/secondDir/thirdDir 1 /etc/yum.repos.d/ 2 /usr/local/gdal221/lib
如果此时想要进入gdal的库目录下的话,只需执行 pushd 加上路径前面的索引号即可:
pushd +2 /usr/local/gdal221/lib /home/user1/firstDir/secondDir/thirdDir /etc/yum.repos.d/
执行 dirs -v 查看路径容器发现 gdal的库目录已经置于顶层:
dirs -v 0 /usr/local/gdal221/lib 1 /home/user1/firstDir/secondDir/thirdDir 2 /etc/yum.repos.d/
此时如果要查看yum源的配置情况,只需执行 pushd +2 即可。
看到这里就可以发现 pushd 命令相比 cd 命令的高效之处了。pushd 命令更适用于多个不同工作目录之间的相互切换,在以后的工作与学习中,如果有同样的工作需求的话,使用 pushd 命令更能让你游刃有余。