2.6 相对和绝对路径

2.6.1绝对路径

任何一个文件都是从根开始的路径,比如之前我们配置的网卡的路径

[root@MOMOCO-01 ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33

/etc/sysconfig/network-scripts/ifcfg-ens33【这个就是网卡的配置路径】

还有

[root@MOMOCO-01 ~]# ls /root/anaconda-ks.cfg 

/root/anaconda-ks.cfg

[root@MOMOCO-01 ~]# ls /etc/hostname 

/etc/hostname

[root@MOMOCO-01 ~]# ls /root/.ssh/authorized_keys 

/root/.ssh/authorized_keys

上面几个红色的都是以根开头的,这些都是绝对路径。绝对路径都是以根开头的。

2.6.2相对路径

[root@MOMOCO-01 sysconfig]# cat /root/.ssh/authorized_keys 

##putty-momoco-01

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAyPtQmcyh0xy+eGYKwTObBqgSGdiBBgVcMSV35xQvwUXsH37TFbIwjh/I4Xir6LWelAdhju0OThqWjRn/svl2bvU1ZGdeWztbkSiPPMRsieEywS4ejrHrsK4cTa5cvbiHlhAlhcCvPKaYBNumMGTe7u68wU8/zXi6GAvliTZNRkpcmjVwqd5zNIWoReQT/suZlkTsAtwmOKUQpZlQoRjjCQ9QBm6vASzt/1+krhHmzYVstes6zCV/u+6jw5mhzH5cw2UURgsxOBA4ZivlkcszVhI+MBRXNZtVkJPQOf7yEwRb4ZMaRpg4jC+R4ClsZoRrjajnQyQdNuv3a82OM1sFeQ== rsa-key-20171213

【无论你在那个路径下你都可以用绝对路径找到你要找的东西】

他是相对你所在目录下的路径

[root@MOMOCO-01 ~]# pwd

/root

【查看你当前所在什么目录下】

例如

[root@MOMOCO-01 ~]# ls .ssh/authorized_keys 

.ssh/authorized_keys

[root@MOMOCO-01 ~]# cd /etc/sysconfig/

【进入一个目录】

[root@MOMOCO-01 sysconfig]# ls network-scripts/ifcfg-ens33

network-scripts/ifcfg-ens33

【这些绿色没有以根开头的路径就是相对当前目录下的路径】

2.7 CD命令

2.7.1 cd -

[root@MOMOCO-01 sysconfig]# cd -

/root

[root@MOMOCO-01 ~]# cd -

/etc/sysconfig

[root@MOMOCO-01 sysconfig]# cd -

/root

[root@MOMOCO-01 ~]# cd -

/etc/sysconfig

  cd -【来回交替我们上一次所在的目录】

2.7.2 cd和cd ~

[root@MOMOCO-01 ~]# cd

[root@MOMOCO-01 ~]# pwd

/root

[root@MOMOCO-01 ~]# cd /etc/

[root@MOMOCO-01 etc]# cd ~

[root@MOMOCO-01 ~]# pwd

/root

【如果我们直接cd或者cd ~就会进入到当前用户的家目录

2.7.3 cd ..

[root@MOMOCO-01 /]# cd /etc/sysconfig/

[root@MOMOCO-01 sysconfig]# pwd

/etc/sysconfig

[root@MOMOCO-01 sysconfig]# cd ..

[root@MOMOCO-01 etc]# pwd

/etc

[root@MOMOCO-01 etc]# cd ..

[root@MOMOCO-01 /]# pwd

/

【cd ..返回我们所在当前目录的上一级目录】

[root@MOMOCO-01 /]# cd

[root@MOMOCO-01 ~]# pwd

/root

[root@MOMOCO-01 ~]# cd ..

[root@MOMOCO-01 /]# pwd

/

[root@MOMOCO-01 /]# cd ..

[root@MOMOCO-01 /]# pwd

/

【我们顶级目录就是根,你一直cd ..最多只能到根目录】

2.7.4 man cd

还有一些他的选项你可以用[root@MOMOCO-01 /]# man cd查看,在这里我们就不做过多的介绍,介绍这几个常用的。如果你英语不好你可以下载一个有道云翻译,直接复制他就会帮你翻译。平时没事多看看英语对你的英语能力会有所提升的。

2.8创建和删除目录mkdir rmdir

2.8.1mkdir 全称:make directories【创建目录】

[root@MOMOCO-01 /]# mkdir /tmp/gyb01

[root@MOMOCO-01 /]# ls -ld  /tmp/gyb01/

drwxr-xr-x. 2 root root 6 12月 17 13:43 /tmp/gyb01/

[root@MOMOCO-01 /]# date

2017年 12月 17日 星期日 13:43:56 CST

【mkdir是用来创建一个目录的,你可以看时间这个目录是刚刚创建的】

[root@MOMOCO-01 /]# mkdir /tmp/gyb01/1/2

mkdir: 无法创建目录"/tmp/gyb01/1/2": 没有那个文件或目录

[root@MOMOCO-01 /]# ls -l /tmp/gyb01/

总用量 0

【因为gyb01目录下没有1目录所以不能创建2目录,我们可以用什么目录一块创建吗?如下:】

[root@MOMOCO-01 /]# mkdir -p /tmp/gyb01/1/2

[root@MOMOCO-01 /]# ls -l /tmp/gyb01

总用量 0

drwxr-xr-x. 3 root root 15 12月 17 13:54 1

[root@MOMOCO-01 /]# ls -l /tmp/gyb01/1

总用量 0

drwxr-xr-x. 2 root root 6 12月 17 13:54 2

【我们使用-p选项就可以级联串的创建目录了】

[root@MOMOCO-01 /]# mkdir -pv /tmp/gyb01/2/3/4

mkdir: 已创建目录 "/tmp/gyb01/2"

mkdir: 已创建目录 "/tmp/gyb01/2/3"

mkdir: 已创建目录 "/tmp/gyb01/2/3/4"

【-v选项就是可视化的创建目录】

2.8.2 rmdir 全称:remove empty directories【删除空目录】

[root@MOMOCO-01 /]# rmdir /tmp/gyb01/2

rmdir: 删除 "/tmp/gyb01/2" 失败: 目录非空

[root@MOMOCO-01 /]# rmdir /tmp/gyb01/2/3

rmdir: 删除 "/tmp/gyb01/2/3" 失败: 目录非空

[root@MOMOCO-01 /]# rmdir /tmp/gyb01/2/3/4

[root@MOMOCO-01 /]# touch /tmp/gyb01/2/3/1.txt

【创建一个空文件】

[root@MOMOCO-01 /]# tree /tmp/gyb01/

/tmp/gyb01/

├── 1

│   └── 2

└── 2

    └── 3

        └── 1.txt

4 directories, 1 file

[root@MOMOCO-01 /]# rmdir /tmp/gyb01/2/3/

rmdir: 删除 "/tmp/gyb01/2/3/" 失败: 目录非空

[root@MOMOCO-01 /]# rmdir /tmp/gyb01/2/3/1.txt

rmdir: 删除 "/tmp/gyb01/2/3/1.txt" 失败: 不是目录

【从上面的操作中我们能看出来rmdir只能删除一个空目录,他也不可以删除一个文件。】

[root@MOMOCO-01 /]# tree /tmp/gyb01/

/tmp/gyb01/

├── 1

│   └── 2

└── 2

    └── 3

        └── 1.txt

[root@MOMOCO-01 /]# rmdir -p /tmp/gyb01/1/2

rmdir: 删除目录 "/tmp/gyb01" 失败: 目录非空

[root@MOMOCO-01 /]# tree /tmp/gyb01/

tree /tmp/gyb01/

/tmp/gyb01/

└── 2

    └── 3

        └── 1.txt

2 directories, 1 file

【从上面的操作中我们可以看出虽然我们没有成功但是我们还是删除了gyb01下的1和2目录,其他的没有删除是因为gyb01下还有其它的目录文件。如果你想删除的目录和其他的目录都是空目录他会给你都删除,这个命令非常危险一般我们是不会用的。删除目录我们还有其他命令rm。】

2.9 rm命令

2.9.1 rm 全称:remove【删除目录或文件】

[root@MOMOCO-01 /]# rm /tmp/gyb01/2/3/1.txt

rm:是否删除普通空文件 "/tmp/gyb01/2/3/1.txt"?n

【按n取消,按y确定】

[root@MOMOCO-01 /]# touch /tmp/gyb01/2/3/2.txt

[root@MOMOCO-01 /]# !tree

tree /tmp/gyb01/

/tmp/gyb01/

└── 2

    └── 3

        ├── 1.txt

        └── 2.txt

2 directories, 2 files

【!tree代表上一次最近的我使用以tree开通的命令】

[root@MOMOCO-01 /]# rm /tmp/gyb01/2/3/*.txt

rm:是否删除普通空文件 "/tmp/gyb01/2/3/1.txt"?n

rm:是否删除普通空文件 "/tmp/gyb01/2/3/2.txt"?n

【*代表统配符】

[root@MOMOCO-01 /]# rm -f /tmp/gyb01/2/3/*.txt

【加上-f选项就是强制的删除这些文件,不做任何提示。】

[root@MOMOCO-01 /]# !tree

tree /tmp/gyb01/

/tmp/gyb01/

└── 2

    └── 3

2 directories, 0 files

[root@MOMOCO-01 /]# history

    1  passwd

    2  init 6

    3  root

    4  gyb.1234

    5  init 0

    6   13 18:23:12 2017

    7  ping www.qq.com

    8  ifconfig

    .........

【显示出来我们之前使用过的命令】

[root@MOMOCO-01 /]# !tree

tree /tmp/gyb01/

/tmp/gyb01/

└── 2

    ├── 1.txt

    └── 3

        └── 2.txt

2 directories, 2 files

[root@MOMOCO-01 /]# rm /tmp/gyb01/2/3

rm: 无法删除"/tmp/gyb01/2/3": 是一个目录

【他会提示你不能删除目录】

[root@MOMOCO-01 /]# rm -r /tmp/gyb01/2/3

rm:是否进入目录"/tmp/gyb01/2/3"? y

rm:是否删除普通空文件 "/tmp/gyb01/2/3/2.txt"?n

rm:是否删除目录 "/tmp/gyb01/2/3"?n

【-r选项是用来删除一个目录的,这样删除太麻烦了。】

[root@MOMOCO-01 /]# rm -rf /tmp/gyb01/2/3

【-f强制删除目录,不做任何的提示。】

[root@MOMOCO-01 /]# !tree

tree /tmp/gyb01/

/tmp/gyb01/

└── 2

    └── 1.txt

1 directory, 1 file

[root@MOMOCO-01 /]# rm -rfv /tmp/gyb01/2/

已删除"/tmp/gyb01/2/1.txt"

已删除目录:"/tmp/gyb01/2/"

【-v可视化的删除目录】

小知识:

[root@MOMOCO-01 /]# rm -rfv /tmp/gyb01/2/

[root@MOMOCO-01 /]# rm -rv /tmp/gyb01/2/

rm: 无法删除"/tmp/gyb01/2/": 没有那个文件或目录

[root@MOMOCO-01 /]# rm -rfv /tmp/gyb01/2/

【这个目录我们刚刚已经删除掉了。你再次运行是什么都不提示,不是因为成功了,而是-f选项起到的作用他的意思就是是什么都不管】