您的位置:首页 > 运维架构 > Linux

如何在Linux下环境下快速切换工作目录

2016-06-01 00:00 465 查看
摘要: cd pushd popd dirs的常用操作

在Linux命令行下,我们经常需要在一个目录下执行某些操作在跳转到另外的目录下,也就是使用我们熟悉的cd命令,基本上接触过命令行的人,第一个认识的命令都是cd,了解cd命令会对我们工作效率有个提高,但是你真的了解它吗?

一、cd命令

格式:

cd [选项] [参数]

我们常用的就是cd后面直接加参数,也就是目录。 单其实参数和选项一样都是可选的。

cd ~ 和 cd (不加任何参数)都能直接切换到用户的主目录下面。

cd常用的选项只有-P

cd -P dir 如果dir是一个链接目录,则会跳转到dir指向的原目录。

常用技巧:

我们可以配置CDPATH环境变量

[code=language-bash]export CDPATH=.:~/dvp:~/workspace


这样的话cd不仅在当前目录搜索,也会在~/dvp和~/workspace目录下搜索。如果不配置 .(当前目录),系统会自动添加到CDPAHT 的结尾,也就是说如果当前目录和~/dvp都有这个文件夹,会优先进入~/dvp目录下的文件夹。

2. cd -

切换到上次所在目录



二、pushd和popd命令

cd 命令的局限在于,如果需要在多个固定的文件夹之间来回跳转,cd命令就显得费事起来。两个文件夹之间可以用cd -,但是超过两个,我们就可以用pushd和popd命令。

pushd就是将一个目录压入一个栈,popd是将一个目录弹出栈。我可以跳转到栈中的任意一个路径,这对那些长路径很有意义。下面介绍它们的用法:

pushd

pushd语法格式:

pushd [-n] [dir]

pushd [-N|+N]

-n是固定选项,N代表数字。如果开启-n选项,则表示将目录压入栈,但不跳转。

如果没有输入dir,则默认将当前目录压入栈顶。

pushd +N 表示跳转栈中第N个路径,且将此路径压入到栈顶(从左往右,从0开始)

pushd -N 表示跳转到第N个路径,且将次路基压入到栈顶 (从右往左,从0开始)



可以看到pushd 和pushd +1 是等价的。

其实 pushd -n +N|-N 也是可以的,在我的电脑上会将但前目录压入栈,然后将第+N或-N个目录删除。

2. popd

popd语法格式:

popd [-n] [+N|-N]



值得一提的是,popd 不加任何选项参数会将栈顶元素弹出,然后跳转到新的栈顶元素目录。

-n 选项同pushd,将栈中元素弹出,但不跳转目录。

3. dirs

dirs是查看目录栈中的元素,此命令主要是结合上面两个命令使用。如果压入栈中元素过多,记不准确时可以使用,格式如下:

dirs [-clpv] [+N] [-N]

-c:删除目录栈中所有的记录

-l:以完整格式显示

-p:一个目录一行的方式显示

-v:每一行目录来显示目录栈的内容,每个目录前加上编号

如果不加上+N或-N则会将栈中所有元素打印出来。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: