菜鸟学linux之四Linux文件与目录管理第一节

来源:互联网 发布:青少年法治网络竞赛 编辑:程序博客网 时间:2024/06/06 01:51

一、绝对路径和相对路径

绝对路径:路径的写法一定由根目录 ‘/’写起,例如/usr/local/mysql 这就是绝对路径。

相对路径:路径的写法不是由根目录 ‘/’写起,例如,首先用户进入到/, 然后再进入到home ,命令为cd /home 然后cd test 此时用户所在的路径为/home/test 第一个cd命令后跟 ‘/home’ 第二个cd命令后跟 ‘test’, 并没有斜杠,这个 ‘test’ 是相对于 ‘/home’ 目录来讲的,所以叫做相对路径。

命令:cd

这个命令是用来变更用户所在目录的,后面如果什么都不跟,就会直接到当前用户的根目录下,我们做实验用的是 ‘root’ 账户,所以运行cd 后,会进入root账户的根目录 ‘/root’. 后面跟目录名,则会直接切换到指定目录下:

[root@localhost ~]# cd /tmp/[root@localhost tmp]# pwd/tmp[root@localhost tmp]# cd[root@localhost ~]# pwd/root

pwd 这个命令打印出当前所在目录,cd 后面只能是目录名,而不能是文件名,如果跟了文件名会报错:

[root@localhost ~]# cd /etc/passwd-bash: cd: /etc/passwd: 不是目录

./ 表示当前目录,../ 表示当前目录的上一级目录:

[root@localhost ~]# cd /usr/local/lib/[root@localhost lib]# pwd/usr/local/lib[root@localhost lib]# cd ./[root@localhost lib]# pwd/usr/local/lib[root@localhost lib]# cd ../[root@localhost local]# pwd/usr/local

上例中,首先进入到 /usr/local/lib/ 目录下,然后再进入./ 其实还是进入到当前目录下,用 pwd 查看当前目录,并没有发生变化,然后再进入 ../ 则是进入到了 /usr/local/ 目录下,即 /usr/local/lib 目录的上一级目录。

命令:mkdir

用来创建目录的,这个命令在上一章节中用到过。 ‘mkdir’ 其实就是make directory的缩写。其语法为 mkdir [-mp] [目录名称] ,其中-m, -p为其选项, ‘-m’ 这个选项用来指定要创建目录的权限,不常用,不做重点解释。 ‘-p’ 这个选项很管用,先来做个试验,您会一目了然的:

[root@localhost ~]# mkdir /tmp/test/123mkdir: 无法创建目录 '/tmp/test/123': 没有那个文件或目录[root@localhost ~]# mkdir -p /tmp/test/123[root@localhost ~]# ls /tmp/test123

当我们想创建 /tmp/test/123 目录,可是提示不能创建,原因是/tmp/test 目录不存在,您会说,这个Linux怎么这样傻,/tmp/test 目录不存在就自动创建不就OK了嘛,的确Linux确实很傻,如果它发现要创建的目录的上一级目录不存在就会报错。然而Linux并不是那么傻,因为它也为我们想好了解决办法,即 ‘-p’ 选项,这个选项可以帮我们创建一大串级联目录,这个选项还有一个好处,那就是当您创建一个已经存在的目录时,不会报错:

[root@localhost ~]# ls -ld /tmp/test/123drwxr-xr-x. 2 root root 4096 5月   9 19:10 /tmp/test/123[root@localhost ~]# mkdir /tmp/test/123mkdir: 无法创建目录 '/tmp/test/123': 文件已存在[root@localhost ~]# mkdir -p /tmp/test/123[root@localhost ~]# ls -ld /tmp/test/123drwxr-xr-x. 2 root root 4096 5月   9 19:10 /tmp/test/123

在上一章节里,已经介绍过 ls 命令,但是并没有向您介绍它的 ‘-d’ 选项,这个选项是针对目录的,通常都是和 ‘-l’ 同时使用写成 ‘-ld’. 它可以查看指定目录的属性,比如在本例中,它可以查看 ‘/tmp/test/123’ 目录的创建时间。mkdir -p 后面跟一个已经存在的目录名时,它不会做任何事情,只是不报错而已。

命令:rmdir

用来删除空目录,后面可以是一个也可以是多少,多个的话用空格分隔。该命令很少使用,因为它只能删除目录,不能删除文件,还有一个命令rm 既可以删除目录又可以删除文件,用的比较多。rmdir 有一个和mkdir一样的选项 ‘-p’, 同样可以级联删除一大串目录,但是级联的目录中其中一个目录里还有目录或者文件时就不好用了。

[root@localhost ~]# ls /tmp/test123[root@localhost ~]# rmdir /tmp/test/rmdir: 删除 '/tmp/test/' 失败: 目录非空[root@localhost ~]# rmdir /tmp/test/123[root@localhost ~]# ls /tmp/test[root@localhost ~]#

所以,得出的结论是, ‘rmdir’ 只能删除空目录,即使加上 ‘-p’ 选项也只能删除一串的空目录,可见这个命令有很大的局限性,偶尔用下还可以。

命令:rm

这个命令是最常用的, ‘rm’ 同样也有很多选项。您可以通过 man rm 来获得详细帮助信息。在这里只介绍最常用的两个选项。

‘-r’ : 删除目录用的选项,等同于rmdir.

[root@localhost ~]# mkdir -p /tmp/test/123[root@localhost ~]# rm -r /tmp/test/123rm:是否删除目录 '/tmp/test/123'? y

但是和rmdir不同的是,使用 rm-r 删除目录时,会问一下是否删除,如果输入 ‘y’ 则会删除,输入 ‘n’ 则不删除。当然 rm -r 也不会向rmdir不能删除非空目录,它是可以删除非空目录的。

‘-f’ : 表示强制删除,不再提示是否要删除,而是直接就删除了,而后面跟一个不存在的文件或者目录时,也不会报错,如果不加 ‘-f’ 选项会报错。

[root@localhost ~]# rm /tmp/test/123/123rm: 无法删除 '/tmp/test/123/123': 没有那个文件或目录[root@localhost ~]# rm -f /tmp/test/123/123

要删除一个目录时,即使加上 ‘-f’ 选项也会报错,所以删除目录一定要加 ‘-r’ 选项。

[root@localhost ~]# rm -f /tmp/test/123rm: 无法删除 '/tmp/test/123': 是一个目录[root@localhost ~]# rm -rf /tmp/test/123

关于rm,使用最多便是 ‘-rf’ 两个选项合用了。不管删除文件还是目录都可以。但是方便的同时也要多注意,万一您的手太快后边跟了/那样就会把您的系统文件全部删除的,切记切记。



0 0