关于目录的操作命令有cd,mkdir,rmdir,pwd。
以前说过命令的基本格式是 命令 【选项】 【参数】
而这些操作的参数多数都是目录的路径。路径分为相对路径和绝对路径。
- 相对路径:比如我们现在在/etc,我们想切换到/etc/yum.repos.d下,用相对路径的方法是:cd ./yum.repos.d。我们可以用‘.’代表当前我们在的路径。
- 而绝对路径,就是直接把从根开始输入一个详细的地址。
除了相对路径可以写少一点目录,我们还可以用 esc+.来写入上一次写过的目录。
还可以用!$ 来写入上一次写过的目录。
一、cd命令。
①cd首先是一个内嵌命令。
[root@localhost ~]# type help
help is a shell builtin
所以获取帮助的不能用 cd --help,可以用 help cd,也可以用man cd
②cd的便捷操作
cd ~用户名 去某用户名的家目录,但是一般只能root才可以去别人的家目录。
一般用户只能,~自己用户名,相当于cd 不加任何参数,代表回到自己家目录
cd .. 回到上一级目录,cd .. 会一直退回到上一级,直到回到根目录下,不能再退回。
因为 根 是一切目录的开始点/最初点。
cd - 切换到上一次的目录,第一次按相当于
cd 回到家目录
练习的结果:
[root@localhost ~]# cd ~nick
[root@localhost nick]# cd ..
[root@localhost home]# cd -
/home/nick
[root@localhost nick]# cd !$ // !$ 之后会显示上一次的指令,以及进入的目录
cd -
/home
[root@localhost home]# cd !$
cd -
/home/nick
二、mkdir命令
①mkdir是一个外部命令,获取帮助是用 --help或者是man
[root@localhost nick]# type mkdir
mkdir is /usr/bin/mkdir
②mkdir的基本操作
mkdir -p 路径+目录名 递归创建目录,即使前面的目录不存在也可以创建出来。
mkdir -v 【参数】 看见创建目录的顺序
通常 -v选项和-p选项经常一起用。
如果创建多个目录可以用/来分割,{a,b}来表示某个目录下创建a,b两个目录,不用多次输入,减少麻烦
tmp/mylinux1/
|--bin
|--etc
| |-sysconfig
| |--network-scripts
|--sbin
|--usr
| |--bin
| |--sbin
| |--lib
| |--lib64
| |--local
| | |--bin
| | |--etc
| | |--lib
| | |--sbin
|
|--var
|--cache
|--log
|--run
可以用一条语句实现,而不用多条语句创建目录。
[root@localhost tmp]# mkdir -pv ./mylinux1/{bin,etc/sysconfig/network-scrips,sbin,usr/{bin,sbin,lib,lib64,local/{bin,etc,lib,sbin}},var/{cache,log,run}}
mkdir: created directory ‘./mylinux1’
mkdir: created directory ‘./mylinux1/bin’
mkdir: created directory ‘./mylinux1/etc’
mkdir: created directory ‘./mylinux1/etc/sysconfig’
mkdir: created directory ‘./mylinux1/etc/sysconfig/network-scrips’
mkdir: created directory ‘./mylinux1/sbin’
mkdir: created directory ‘./mylinux1/usr’
mkdir: created directory ‘./mylinux1/usr/bin’
mkdir: created directory ‘./mylinux1/usr/sbin’
mkdir: created directory ‘./mylinux1/usr/lib’
mkdir: created directory ‘./mylinux1/usr/lib64’
mkdir: created directory ‘./mylinux1/usr/local’
mkdir: created directory ‘./mylinux1/usr/local/bin’
mkdir: created directory ‘./mylinux1/usr/local/etc’
mkdir: created directory ‘./mylinux1/usr/local/lib’
mkdir: created directory ‘./mylinux1/usr/local/sbin’
mkdir: created directory ‘./mylinux1/var’
mkdir: created directory ‘./mylinux1/var/cache’
mkdir: created directory ‘./mylinux1/var/log’
mkdir: created directory ‘./mylinux1/var/run’
注意:当在创建目录的时候,子目录只有一个的时候不能用{},就是a下创建b,不能用a{b},不然会出现吧{}也当成目录名,出现错误。
三、rmdir命令
①rmdir和mkdir类似,都是外部命令。
②rmdir的权限有限制,普通用户不能删除root创建的目录,但是可以删除自己创建的目录
[nick@localhost tmp]$ rmdir mylinux1/
rmdir: failed to remove ‘mylinux1/’: Operation not permitted
③rmdir -p 递归删除,只要是上一个目录是空目录就可以一直往 / 方向删除。
④rmdir -v 可以看到系统删除目录的过程
递归删除:
[root@localhost tmp]# rmdir -pv ./mylinux1/bin/
rmdir: removing directory, ‘./mylinux1/bin/’
rmdir: removing directory, ‘./mylinux1’
rmdir: failed to remove directory ‘./mylinux1’: Directory not empty
删除的时候也可以用{}来删除多个目录:
[root@localhost tmp]# rmdir -pv ./mylinux1/{etc,sbin}
rmdir: removing directory, ‘./mylinux1/etc’
rmdir: failed to remove ‘./mylinux1/etc’: Directory not empty
rmdir: removing directory, ‘./mylinux1/sbin’
rmdir: removing directory, ‘./mylinux1’
rmdir: failed to remove directory ‘./mylinux1’: Directory not empty
删除的目录的时候当遇到删除的目录里面有东西就会不执行删除。
四、pwd命令
①、pwd是内部命令
②、pwd用于打印当前的工作目录(print working directory)