上一次我们学习了linux目录的介绍,以及查看命令ls及alias,那么我们如何学习对这些目录进行操作,具体如下:cd mkdir rmdir rm.
1、首先先讲两个概念:每个文件或目录都有自己的路径,那什么是相对路径和绝对路径:
相对路径:从当前目录开始的路径则是相对路径,非根目录开头的。
[root@localhost ~]# cd /etc/
[root@localhost etc]# ls sysconfig/network-scripts/ifcfg-eth0
sysconfig/network-scripts/ifcfg-eth0
[root@localhost etc]# pwd
/etc
绝对路径:从根目录开始的路径则是绝对路径:因为对它们而言,都在根目录下:
[root@localhost ~]# pwd
/root
[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost ~]# pwd
/root
就是说,只要是从根目录开头的路径,则都是绝对路径,如上图:
或者是可以任何目录下都可以切换到自己想去的目录,则为绝对路径了。
2、cd: (change directory)当我们需要进入一个目录时,则使用cd命令,它的具体参数如下:
"cd" "cd ~" "cd ." "cd ..” “cd -"
cd后面加目录,表示进入一个目录下,如我们需要查看网卡的文件目录:则如下:
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-eth0 ifdown-post ifup-eth ifup-routes
ifcfg-lo ifdown-ppp ifup-ippp ifup-sit
ifdown ifdown-routes ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-sit ifup-isdn ifup-wireless
ifdown-eth ifdown-tunnel ifup-plip init.ipv6-global
另外使用cd命令 还可以返回到根目录:等同于"cd ~"如下:
[root@localhost network-scripts]# cd #第一次切换到当前根目录下:
[root@localhost ~]# pwd #查看所在路径:
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cd ~ #第二次切换到当前根目录下:
[root@localhost ~]# pwd #查看所在路径:
/root
2.1 "cd ~"使用此命令则可以返回则至根目录,等同于命令"cd".如上图:
2.2 "cd ."表示当前目录:
[root@localhost ~]# pwd #第一次查看目录
/root
[root@localhost ~]# cd .
[root@localhost ~]# pwd #第二次查看所在目录
/root
2.3 “cd .." 表示返回上一级目录:每次都会返回当前目录的上一级目录:如下:
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# pwd #当前所在目录
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cd .. #第一次使用命令后
[root@localhost sysconfig]# pwd 返回上级目录
/etc/sysconfig
[root@localhost sysconfig]# cd .. #第二次使用命令后
[root@localhost etc]# pwd 又返回上级目录
/etc
[root@localhost etc]# cd .. #第三次使用命令后
[root@localhost /]# pwd 又返回上级目录
/
2.4 "cd -"表示返回至上次所在的目录(未切换前的目录),相当于遥控器上的交换按钮:
[root@localhost ~]# cd /etc/ssh/ #首次进入当前目录下
[root@localhost ssh]# pwd #查看所在目录
/etc/ssh
[root@localhost ssh]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# pwd #查看当前所在目录
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# cd - #使用命令后
/etc/ssh
[root@localhost ssh]# pwd #再次查看所在目录
/etc/ssh
[root@localhost ssh]# #返回至第一次所在目录
如图所示:第一次所在的目录是/etc/ssh下,此时再进入到网卡所在的目录,然后是用cd -,我们会发现此时又回到了/etc/ssh目录下。
3、mkdir和rmdir:分别是创建目录和删除目录:
3.1:mkdir: 要创建目录: 参数:-p
[root@localhost ~]# mkdir mulu #创建目录
[root@localhost ~]# ls -ld mulu #查看目录信息
drwxr-xr-x 2 root root 4096 Jun 10 23:11 mulu
mkdir支持创建级联目录:需要加-p参数:不然会报错:如下:
[root@localhost ~]# mkdir dir1/dir2/ #首次创建目录,报错.....
mkdir: cannot create directory ‘dir1/dir2/’: No such file or directory
[root@localhost ~]# mkdir -p dir1/dir2/ #第二次创建目录,可以创建成功......
[root@localhost ~]# tree dir1/ #查看目录情况:
dir1/
└── dir2
1 directory, 0 files
此时我们需要加上-p参数既可,如上:
此时创建成功,可以用我们上一章学的tree命令来查看:可不要忘记它还有一个-L选项,可以选择要显示的目录数。
3.2 此时我们已经学会创建,那是否可以删除呢,当然是可以的,使用命令rmdir:
rmdir:删除的目录,参数: -p 删除级联目录 :注:不得删除非空目录:
[root@localhost ~]# ls -ld mulu #查看目录情况。
drwxr-xr-x 2 root root 4096 Jun 10 23:11 mulu
[root@localhost ~]# rmdir mulu #删除目录。
[root@localhost ~]# ls -ld mulu #目录已经删除:
ls: cannot access mulu: No such file or directory
删除级联目录则要-p目录:删除目录下的目录:
但目录下还有目录时,删除时会提示目录非空,此时需要用”-p“选项。
[root@localhost ~]# ls -l dir1/ #查看目录下情况,发现还有目录dir2.
total 4
drwxr-xr-x 3 root root 4096 Jun 10 23:17 dir2
[root@localhost ~]# rmdir dir1/ #此时使用rmdir目录删除时会报错:
rmdir: failed to remove ‘dir1/’: Directory not empty
[root@localhost ~]# rmdir -p dir1/dir2/dir3/dir4/ 使用 “-p” 则可以成功删除:
rmdir -p 会直接删除"dir"目录,连同它目录下"dir2"目录和"dir3"目录也删除:
此时我们会思考,如果它目录下是文件呢,是否还可以删除,那我们下面来看一看:
[root@localhost ~]# mkdir -p 1/2/ #创建一个目录1及子目录2.
[root@localhost ~]# touch 1/2/3 #创建一个文件3.
[root@localhost ~]# tree 1/ #查看目录下情况:
1/
├── 2
│ └── 3
└── 212
1 directory, 2 files
[root@localhost ~]# rmdir -p 1/2/ #使用rmdir命令删除,提示“目录非空”:
rmdir: failed to remove ‘1/2/’: Directory not empty
如下:我们根目录下,有目录"1"下有"2"目录,"2"目录下有"3.txt"文本,删除时会提示"目录非空"。
此时我们需要用到一个新命令:rm 参数: -f (force) -r(删除目录要加)。
[root@localhost ~]# ls -l 1 #查看目录下情况:
total 4
drwxr-xr-x 2 root root 4096 Jun 10 23:25 2
-rw-r--r-- 1 root root 0 Jun 8 12:39 212
[root@localhost ~]# rm 1 使用rm命令删除,无法删除:
rm: cannot remove ‘1’: Is a directory
[root@localhost ~]# rm -fr 1 #需使用-f(forece)强制选项:
此时删除目录会报错:提示它是一个目录,无法删除。需要加-fr参数即可:
[root@localhost ~]# rm -f 1 #删除目录:
rm: cannot remove ‘1’: Is a directory #报错:提示是一个目录:
[root@localhost ~]# ls -l 1 #查看当前目录:
total 4
drwxr-xr-x 2 root root 4096 Jun 10 23:25 2
-rw-r--r-- 1 root root 0 Jun 8 12:39 212
[root@localhost ~]# rm -fr 1 #使用 fr 参数:
[root@localhost ~]# ^C
[root@localhost ~]# ls -ld 1
ls: cannot access 1: No such file or directory #目录已经成功删除:
由上图看到,此时目录已经被删除了。
上图中用到了!号,它的意思是表示历史记录里面最后一条tree开头的命令。
命令历史直接用history查看即可。
[root@localhost ~]# history
1 exit
2 LS
3 ls
4 host
5 vi /etc/hostname
6 vi /etc/sysconfig/network
7 vi /etc/hostname .
....
....
....
555
563 history
本章内容介绍到这里。