Linux 下 pushd,popd,cd- 用法
2015-05-07 17:41
232 查看
让切换目录更方便: pushd,popd,dirs,cd -
难道用cd不就可以切换目录了吗?
没错,使用cd就可以切换到需要访问的目录,
但是有时会是一个路径很长,层次很多的目录,进到此目录下后,这时我们不小心运行了
cd命令,
理所当然,我们回到了自己的home目录,这时如果想回去怎么办?
还有:因为工作的需要,我们需要不停在几个很深层的目录之间切换,不止一个,
那么即使有tab键帮忙,我们也会因为一个cd命令花费很多时间,如何在多个目录之间切换时能更方便些
pushd,popd是我们的好帮手
说明: pushd,popd,dirs这几个我们讲到的命令是bash内建的命令,
所以只要登录到了bash,这几个命令就可以使用了
这时只需使用
cd -就可以了
cd
-的作用是可以回到前一个目录,
看例子:
怎么样?在两个目录之间切换非常方便,无需再输入很长的路径
说明:
为何cd
-能够回到前一个目录?
这是因为
-在此处等同于 $OLDPWD变量,
此问题可以参见bash的info信息,
cd
一项有相关的说明: An argument of - is equivalent to $OLDPWD.
$OLDPWD变量就是bash所记录的前一个目录
也就是说:$OLDPWD和-相等
下面我们再看一个例子:
我们可以得到结构: 用cd
-和cd $OLDPWD都可以在最近所操作的两个目录之间进行切换
cd -和 cd $OLDPWD都是只支持最近操作的两个目录,所以要在多个目录之间操作时,
我们需要使用
pushd
如果不指定参数,则会回到前一个目录,并把堆栈中最近的两个目录作交换
popd:
弹出堆栈中最近的目录
dirs:
列出当前堆栈中保存的目录列表
看例子:
说明:
dirs的 -p参数可以每行一个目录的形式显示堆栈中的目录列表
-v参数可以在目录前加上编号
注意:有
-v时,不添加 -p也可以每行一个目录的形式显示
说明之二:我们可以看到:最近压入堆栈的目录位于最上面
说明:可以看到,用pushd不加参数在最近的两个目录之间切换时,
当前目录总是位于堆栈的最上面
pushd +n即可
说明:
n是一个数字,有此参数时,是切换到堆栈中的第n个目录,并把此目录以堆栈循环的方式推到堆栈的顶部
需要注意:
堆栈从第0个开始数起
看例子:
看例子:
说明:可以看到popd不加参数的运行情况:
popd把堆栈顶端的目录从堆栈中删除,并切换于位于新的顶端的目录
说明之二:
popd 加有参数 +n时,
n是堆栈中的第n个目录,表示把堆栈中第n个目录从堆栈中删除
-n参数即可
看例子:
2,
用
-c参数即可
看例子:
说明: 位于堆栈顶部的目录是当前目录,它不能被pop出去的
源地址:http://www.cnblogs.com/zhengyuxin/articles/1933920.html
一,为何要使用这几个命令?
可能大家会有疑问,为何要使用这几个命令,难道用cd不就可以切换目录了吗?
没错,使用cd就可以切换到需要访问的目录,
但是有时会是一个路径很长,层次很多的目录,进到此目录下后,这时我们不小心运行了
cd命令,
理所当然,我们回到了自己的home目录,这时如果想回去怎么办?
还有:因为工作的需要,我们需要不停在几个很深层的目录之间切换,不止一个,
那么即使有tab键帮忙,我们也会因为一个cd命令花费很多时间,如何在多个目录之间切换时能更方便些
pushd,popd是我们的好帮手
说明: pushd,popd,dirs这几个我们讲到的命令是bash内建的命令,
所以只要登录到了bash,这几个命令就可以使用了
二,如何在两个目录之间切换?
如果只是在两个目录之间切换,那么还不必使用pushd,这时只需使用
cd -就可以了
cd
-的作用是可以回到前一个目录,
看例子:
[root@localhost ~]# cd /usr/share/kde4/apps/kget/pics/ [root@localhost pics]# cd - /root [root@localhost ~]# cd - /usr/share/kde4/apps/kget/pics [root@localhost pics]#
怎么样?在两个目录之间切换非常方便,无需再输入很长的路径
说明:
为何cd
-能够回到前一个目录?
这是因为
-在此处等同于 $OLDPWD变量,
此问题可以参见bash的info信息,
cd
一项有相关的说明: An argument of - is equivalent to $OLDPWD.
$OLDPWD变量就是bash所记录的前一个目录
也就是说:$OLDPWD和-相等
下面我们再看一个例子:
[root@localhost ~]# cd /usr/share/kde4/apps/kget/pics/ [root@localhost pics]# echo $OLDPWD; /root [root@localhost pics]# cd $OLDPWD [root@localhost ~]# echo $OLDPWD; /usr/share/kde4/apps/kget/pics [root@localhost ~]# cd $OLDPWD; [root@localhost pics]# echo $OLDPWD; /root
我们可以得到结构: 用cd
-和cd $OLDPWD都可以在最近所操作的两个目录之间进行切换
三,如何在多个目录之间切换?
因为cd -和 cd $OLDPWD都是只支持最近操作的两个目录,所以要在多个目录之间操作时,
我们需要使用
pushd
1,用到的3条命令pushd,popd,dirs
pushd:切换到作为参数的目录,并把原目录和当前目录压入到一个虚拟的堆栈中如果不指定参数,则会回到前一个目录,并把堆栈中最近的两个目录作交换
popd:
弹出堆栈中最近的目录
dirs:
列出当前堆栈中保存的目录列表
看例子:
[root@localhost ~]# pushd /usr/local/sbin/ /usr/local/sbin ~ [root@localhost sbin]# dirs /usr/local/sbin ~ [root@localhost sbin]# dirs -p -v 0 /usr/local/sbin 1 ~ [root@localhost sbin]# pushd /usr/share/kde4/apps/kget/ /usr/share/kde4/apps/kget /usr/local/sbin ~ [root@localhost kget]# dirs -p -v 0 /usr/share/kde4/apps/kget 1 /usr/local/sbin 2 ~
说明:
dirs的 -p参数可以每行一个目录的形式显示堆栈中的目录列表
-v参数可以在目录前加上编号
注意:有
-v时,不添加 -p也可以每行一个目录的形式显示
说明之二:我们可以看到:最近压入堆栈的目录位于最上面
2,如何在最近的两个目录之间切换?
在最近的两个目录之间切换:用pushd不加参数即可[root@localhost kget]# pushd /boot/grub/ /boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~ [root@localhost grub]# dirs -v 0 /boot/grub 1 /usr/share/kde4/apps/kget 2 /usr/local/sbin 3 ~ [root@localhost grub]# pushd /usr/share/kde4/apps/kget /boot/grub /usr/local/sbin ~ [root@localhost kget]# dirs -v 0 /usr/share/kde4/apps/kget 1 /boot/grub 2 /usr/local/sbin 3 ~ [root@localhost kget]# pushd /boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~ [root@localhost grub]# dirs -v 0 /boot/grub 1 /usr/share/kde4/apps/kget 2 /usr/local/sbin 3 ~ /boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~ [root@localhost grub]# dirs -v 0 /boot/grub 1 /usr/share/kde4/apps/kget 2 /usr/local/sbin 3 ~ [root@localhost grub]# pushd /usr/share/kde4/apps/kget /boot/grub /usr/local/sbin ~ [root@localhost kget]# dirs -v 0 /usr/share/kde4/apps/kget 1 /boot/grub 2 /usr/local/sbin 3 ~ [root@localhost kget]# pushd /boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~ [root@localhost grub]# dirs -v 0 /boot/grub 1 /usr/share/kde4/apps/kget 2 /usr/local/sbin 3 ~
说明:可以看到,用pushd不加参数在最近的两个目录之间切换时,
当前目录总是位于堆栈的最上面
3,如何在多个目录之间切换?
用pushd +n即可
说明:
n是一个数字,有此参数时,是切换到堆栈中的第n个目录,并把此目录以堆栈循环的方式推到堆栈的顶部
需要注意:
堆栈从第0个开始数起
看例子:
[root@localhost grub]# dirs -v 0 /boot/grub 1 /usr/share/kde4/apps/kget 2 /usr/local/sbin 3 ~ [root@localhost grub]# pushd +2 /usr/local/sbin ~ /boot/grub /usr/share/kde4/apps/kget [root@localhost sbin]# dirs -v 0 /usr/local/sbin 1 ~ 2 /boot/grub 3 /usr/share/kde4/apps/kget
4,如何把目录从堆栈中删除?
用popd即可看例子:
[root@localhost sbin]# dirs -v 0 /usr/local/sbin 1 ~ 2 /boot/grub 3 /usr/share/kde4/apps/kget [root@localhost sbin]# popd ~ /boot/grub /usr/share/kde4/apps/kget [root@localhost ~]# dirs -v 0 ~ 1 /boot/grub 2 /usr/share/kde4/apps/kget [root@localhost ~]# popd +1 ~ /usr/share/kde4/apps/kget [root@localhost ~]# dirs -v 0 ~ 1 /usr/share/kde4/apps/kget
说明:可以看到popd不加参数的运行情况:
popd把堆栈顶端的目录从堆栈中删除,并切换于位于新的顶端的目录
说明之二:
popd 加有参数 +n时,
n是堆栈中的第n个目录,表示把堆栈中第n个目录从堆栈中删除
四,多学一点知识
1,pushd和popd都可以只影响堆栈而不切换目录
用-n参数即可
看例子:
[root@localhost ~]# dirs -v 0 ~ 1 /usr/share/kde4/apps/kget [root@localhost ~]# pushd -n /boot/grub ~ /boot/grub /usr/share/kde4/apps/kget [root@localhost ~]# dirs -v 0 ~ 1 /boot/grub 2 /usr/share/kde4/apps/kget
2,
dirs可以清空目录堆栈
用-c参数即可
看例子:
[root@localhost ~]# dirs -v 0 ~ 1 /boot/grub 2 /usr/share/kde4/apps/kget [root@localhost ~]# dirs -c [root@localhost ~]# dirs -v 0 ~
说明: 位于堆栈顶部的目录是当前目录,它不能被pop出去的
源地址:http://www.cnblogs.com/zhengyuxin/articles/1933920.html
相关文章推荐
- 在Linux中使用pushd和popd命令操作目录的用法
- [Linux]:linux [bash]切换目录更方便: pushd,popd,dirs,cd
- Linux 切换目录更方便: pushd,popd,dirs,cd
- Linux中pushd和popd用法
- linux中的pushd命令及栈原理 [shell] pushd,popd,dirs,cd -
- linux 命令 pushd popd cd 区别
- [linux][bash]让切换目录更方便: pushd,popd,dirs,cd -
- [linux][bash]让切换目录更方便: pushd,popd,dirs,cd -
- [8-20]Linux常用目录pwd,ls,cd目录和stat,echo基本用法
- [8-20]Linux常用目录pwd,ls,cd目录和stat,echo基本用法
- cdrecord命令_Linux cdrecord 命令用法详解:Linux系统下光盘刻录功能命令
- linux目录切换pushd和popd
- pushd,popd,dirs,cd -让切换目录更方便
- 高效的浏览 Linux 目录结构:pushd和popd命令
- cd命令_Linux cd 命令用法详解:切换用户当前工作目录
- pushd,popd,dirs,cd - 的使用
- dirs\pushd\popd命令用法
- cd – Change Directory命令_Linux cd – Change Directory 命令用法详解:
- Linux中的pushd和popd
- linux 命令之 pushd、popd、dirs,以及栈的基础知识