0%

探索未知世界的cd

探索未知世界的cd

.. note::
月桥花院,琐窗朱户,只有春知处。
宋 辛弃疾《青玉案·元夕》

cd 命令应该是除了 ls 命令外用的最多的命令了。

除非你大门不出二门不迈,做个大家闺秀。

cd 命令的含义为

cd - change directory

可以让我们访问不同的文件夹。

最简单的用法为:

1
$ cd /the/path/you/want/to/go/

接下来说一些技巧,让效率加倍。

让cd命令对参数大小写不敏感

如果你需要同时显示大写和小写的目录名(即便是你给的参数只是小写的),执行下面的bind命令,此时就可以避免Linuxlinux的尴尬。

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
2
3
4
5
6
7
8
9
10
alias ..=”cd .. ”
alias ..2=”cd ../..”
alias ..3=”cd ../../..”
alias ..4=”cd ../../../..”
alias ..5=”cd ../../../../.. ”
alias ..6=”cd ../../../../../.. ”
alias ..7=”cd ../../../../../../.. ”
alias ..8=”cd ../../../../../../../.. ”
alias ..9=”cd ../../../../../../../../.. ”
alias ..10=”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
2
3
4
5
6
7
8
9
10
11
# cd /etc/mall

-bash: cd: /etc/mall: No such file or directory

# shopt -s cdspell

# cd /etc/mall

# pwd

/etc/mail

注: 当我错误的把mail敲成了mall,用这个命令mall就自动被换成了mail

详细的配置信息可以参考:

.. literalinclude:: ../../src/linux-bashrc.sh

处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道