探索未知世界的cd
.. note::
月桥花院,琐窗朱户,只有春知处。
宋 辛弃疾《青玉案·元夕》
cd
命令应该是除了 ls
命令外用的最多的命令了。
除非你大门不出二门不迈,做个大家闺秀。
cd
命令的含义为
cd - change directory
可以让我们访问不同的文件夹。
最简单的用法为:
1 | $ cd /the/path/you/want/to/go/ |
接下来说一些技巧,让效率加倍。
让cd命令对参数大小写不敏感
如果你需要同时显示大写和小写的目录名(即便是你给的参数只是小写的),执行下面的bind
命令,此时就可以避免Linux
和linux
的尴尬。
1 | $ bind "set completion-ignore-case on" |
cd之进入刚才的目录
想要进入刚才进入的地方(目测没有很多人再用,但是真的很好用)运行:
1 | $ cd – |
快速返回家目录
需要快速地回到你的家目录,输入cd
即可,这里其实不用一级一级的进入
1 | $ cd |
进入某用户的家目录
这个需要你有root权限
1 | cd ~username |
进入username的家目录。
这些是一些比较基础和入门的,还有一些高级一点的,这些技巧可能用的比较少,不过也是很有帮助的。
一步直达 - CDPATH的妙用
适用于贼长的目录路径
如果你的目录路径足够长长长长长长长长长长长长长长长
那么一定要用一下这个技巧。
变量CDPATH定义了目录的搜索路径,这个设置特别适合经常需要进入到某个目录,此时这个设置就及其有用
1 | $ export CDPATH=/the/first/path/you/want/to/go/:/the/second/path/you/want/to/go |
现在,不用输入/the/first/path/you/want/to/go/hello
这样长了,我可以直接输入下面的命令进入 :
1 | $ cd hello |
此时即可一步直达/the/first/path/you/want/to/go/hello
目录
快速折返的 cd和alias
有没有碰到这个痛点,一直需要cd ..
,如此这番,好多次,那么此时就可以通过结合cd和alias的强大结合,快速折返,如下:在一个多级的目录下希望返回上级目录是,经常要使用cd ../../../../../..
,如果层次很多,比如,在目录/home/username/1/2/3/4/5/6/7/8/9中,希望返回,那么可以使用cd ../../../
,或者在bashrc中定义如下:
1 | alias ..=”cd .. ” |
这样就可以通过..N
来快速返回N级父目录了。
进入某用户的家目录
如果你拥有root权限,可以进入某个用户的家目录
1 | $ cd ~username |
其中username为实际用户名
创建后立即进入该目录的mkdircd
经常需要的操作是创建一个目录,然后再进入该目录,那么可以把下面的一行语句放在bashrc里面即可实现。
1 | function mkdircd () { mkdir –p "$@" && eval cd "\"\$$#\""; } |
此时使用如下的命令进行测试:
1 | $ mkdircd /tmp/the/test/folder/we/want/to/create |
!$
这个命令目测,用的人不多,其实比较有用,且有效。
1 | $ cd !$ |
表明的意思是将上一个命令的参数作为cd的参数来使用。
用shopt –s cdspell自动纠正cd命令的目录名输入错误
使用shopt -s cdspell
可以自动修正cd
时拼写错误的目录名。
如果你在输入时经常犯些错误,这个命令是很有用的。详见以下示例:
1 | # cd /etc/mall |
注: 当我错误的把mail敲成了mall,用这个命令mall就自动被换成了mail
详细的配置信息可以参考:
.. literalinclude:: ../../src/linux-bashrc.sh