cd及目录快速切换
一、cd ~
切换到用户目录
二、cd -
cd - 返回进入当前目录前所在目录
三、pushd、popd、dirs
在Linux的多目录命令提示符中工作是一种痛苦的事情,但以下这些利用linux cd命令和pushd切换目录的技巧有助于你节省时间和精力 。
用pushd实现在不同目录间切换。
在命令行模式下,当你工作在不同目录中,你将发现你有很多时间都浪费在重复输入上。如果这些目录不在同一个根目录中,你不得不在转换时输入完整的路径名,这难免让人有些难以忍受。但你可以用以下的一个或两个步骤来避免所有多余的输入:用命令行解释器中的历史记录,或者用命令行函数pushd。
用命令行解释器中的历史记录的好处是只需按很少的键。在命令行中用向上的箭头来查找你用过的命令,直到你找到,然后按回车键。如果你所切换的两个目录在整个驱动器的子目录结构中很接近,那用解释器中的历史记录可能是你最好的选择。
然而,如果你在两个截然不同的路径间转换的话,你可能很希望利用pushd这个函数,你可以用它创建一个目录堆栈(在内存中的一个列表)。
注释:缺省情况下,pushd函数可能不包括在你的Linux中;但它包涵在Red Hat和用Red Hat驱动的系统中。如果你的系统中没有pushd函数,你可以在ibiblio.org网站上下载相关的函数工具。
这里说一下怎么用pushd。假设你现在工作在/usr/share/fonts目录下。你需要对/usr/share/fonts做一些改动,你将频繁的在两个目录间切换。开始在一个目录下,用pushd函数切换到另一个目录。在我们的例子中,开始在/usr/share/fonts下,你键入pushd/opt/wonderword/fonts,然后按回车键。现在,你将在下一行看到堆栈中的内容:/opt/wonderword/fonts /usr/share/fonts。
正如你所看到的,当你键入pushd和一个路径名时,将自动产生一个堆栈,内容是你键入的目录名和你当前工作的目录名。在我们的例子中,你所键入的路径(/opt/wonderword/fonts)在堆栈的顶部。
快速返回上一级目录,你可以直接键入pushd,如果不跟路径名,你将返回到堆栈中前一个目录的上一层目录。
如果你需要从堆栈中删除一个目录,键入popd,然后是目录名称,再按回车键。想查看堆栈中目录列表,键入dirs,然后按回车键。popd和dirs命令也是常用函数中的一部分。
让切换目录更方便: pushd,popd,dirs,cd -
一,为何要使用这几个命令?
可能大家会有疑问,为何要使用这几个命令,
难道用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: 列出当前堆栈中保存的目录列表
看例子:
[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 ~
说明:可以看到,用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出去的
cd及目录快速切换的更多相关文章
- Linux快速目录间切换cd pushd popd
1. cd - 当前目录和之前所在的目录之间的切换 2. cd + Alt . 用上次命令的最后一个目录路径 要用上上次命令的最后一个目录,就Alt+.两次就可以了 3. push ...
- linux shell 脚本攻略学习15--如何只列出目录,如何快速切换目录
工作中经常遇到关于目录方面的问题,例如,如何只列出当前目录下的所有目录,以及如何快速高效的切换目录,而不需要使用鼠标,下面将简单介绍关于这两方面的解决方案: 一.如何只列出目录? 看似简单的任务,其实 ...
- 在命令行中使用pushd和popd进行快速切换目录
当频繁的切换三个或三个以上的目录的时候,可以使用pushd命令.每次使用目录路径被存储在栈中,然后用pushd和popd操作在目录之间切换. 例如: [root@gameserver1 ~]# pus ...
- 转Linux 下用alias 设置命令别名快速切换常用命令
https://blog.csdn.net/u012830148/article/details/80618616 在linux下开发,经常需要切换目录,如果目录很长则切换起来非常的麻烦,针对一些常用 ...
- 一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等)
本篇文章记录的是一些有用的 Emacs 配置,有些是自己原创,有些是借鉴别人(能记起来出处的我放了链接). 规定:C 代表 Ctrl,M 代表 Alt. 1.设置一次跳跃 n 行的快捷键 按 C-M- ...
- 如何固定OpenERP顶的主菜单,方便滚动至第二屏以及多屏时,快速切换主菜单
如何固定OpenERP顶的主菜单,方便滚动至第二屏以及多屏时,快速切换主菜单 作者:广州-步科,来自OpenERP应用群() 将“addons\web\static\src\css”目录下的“base ...
- 多项目并行开发如何做到快速切换——sublime Text3
sublime text有一个很人性化的功能,就是打开窗口的时候,它会把上一次关闭时的编辑器工作区状态完全复原(不论文件是否已经保存). 只有一个项目的时候,这个功能非常方便,可以保证重启电脑后cod ...
- mac平台多个php版本快速切换
mac平台多个php版本快速切换 要求所有php版本都是由brew安装 使用brew安装php多版本方法 # brew install php56 # brew install php70 安装切换工 ...
- 使用FreePic2Pdf导出书签至Word建立层级目录——快速初始化Word笔记本目录
使用FreePic2Pdf导出书签至Word建立层级目录 --快速初始化Word笔记本目录 文:安徽师范大学2014级计算机科学与技术 王昊 (Get Contact:441301158@qq.com ...
随机推荐
- Pycharm安装详细教程
今天小编给大家分享如何在本机上下载和安装Pycharm,具体的教程如下: 1.首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/downlo ...
- Java7,AutoClosable
Java 7的try-with-resource语法的目的是提高Java开发人员的效率,使得他们不需要在编写代码时考虑资源释放问题,大多数的这类"清理"问题是由于异常发生时清理方法 ...
- 1 R语言介绍
注释:# 赋值:<- 查看.设定当前工作目录:getwd() setwd() wd:workspace directory[setwd("c:/myproject/project ...
- IE下推断IE版本号的语句
样例: 1. <!--[if !IE]> 除IE外都可识别 <![endif]--> 2. <!--[if IE]> 全部的IE可识别 <![endif]-- ...
- 星文快投v2全新升级
2017-07-31 关于“星文快投”,我的初衷是:简单.稳定.可定制的投标软件.前期版本其实也基本达到这个目标了,系统跑起来后,几天下来也累积过手三十多万个标的了,自动投标也工作正常,作为一个纯粹的 ...
- windows 环境变量
1.考虑下面的需求,进入cmd之后,我就想执行mysql客户端命令,而这需要转到mysql安装目录,找到mysql可执行文件,在这个目录下执行mysql命令.这样太麻烦,有没有好的解决办法? 2.使用 ...
- ZH奶酪:中文依存句法分析概述及应用
句法分析是自然语言处理领域的一个关键问题,如能将其有效解决,一方面,可对相应树库构建体系的正确性和完善性进行验证;另一方面,也可直接服务于各种上层应用,比如搜索引擎用户日志分析和关键词识别,比如信息抽 ...
- 算法笔记_217:黑洞数(Java)
目录 1 问题描述 2 解决方案 1 问题描述 任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456.求这两个数字的差,得:41 ...
- Python学习摘录(上)
1:接收输入 var=raw_input() 注意:raw_input()总数接收字符串形式的输入.所以,如果我们想接收其他类型的数据,则需要强制类型转换.(如果转换失败,就会抛出异常) 2:pass ...
- 索引范围扫描(INDEX RANGE SCAN)
索引范围扫描(INDEX RANGE SCAN)适用于所有类型的B树索引,当扫描的对象是唯一性索引时,此时目标SQL的where条件一定是范围查询(谓词条件为 BETWEEN.<.>等): ...