AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > Linux

linux 绝对路径和相对路径

51自学网 http://www.51zixue.net
在Linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的 /root/.ssh/authorized_keys 这就是一个文件的路径。如果您告诉系统这个文件的路径,那么系统就可以找到这个文件。在Linux的世界中,存在着绝对路径和相对路径。
 
绝对路径:路径的写法一定由根目录 ‘/’写起,例如 /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
/rootpwd 这个命令打印出当前所在目录,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/123
mkdir: 无法创建目录 '/tmp/test/123': 没有那个文件或目录
[root@localhost ~]# mkdir -p /tmp/test/123
[root@localhost ~]# ls /tmp/test
123当我们想创建 /tmp/test/123 目录,可是提示不能创建,原因是 /tmp/test 目录不存在,您会说,这个Linux怎么这样傻,/tmp/test 目录不存在就自动创建不就OK了嘛,的确Linux确实很傻,如果它发现要创建的目录的上一级目录不存在就会报错。然而Linux并不是那么傻,因为它也为我们想好了解决办法,即 ‘-p’ 选项,这个选项可以帮我们创建一大串级联目录,这个选项还有一个好处,那就是当您创建一个已经存在的目录时,不会报错:
 
[root@localhost ~]# ls -ld /tmp/test/123
drwxr-xr-x. 2 root root 4096 5月   9 19:10 /tmp/test/123
[root@localhost ~]# mkdir /tmp/test/123
mkdir: 无法创建目录 '/tmp/test/123': 文件已存在
[root@localhost ~]# mkdir -p /tmp/test/123
[root@localhost ~]# ls -ld /tmp/test/123
drwxr-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/test
123
[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/123
rm:是否删除目录 '/tmp/test/123'? y但是和rmdir不同的是,使用 rm -r 删除目录时,会问一下是否删除,如果输入 ‘y’ 则会删除,输入 ‘n’ 则不删除。当然 rm -r 也不会向rmdir不能删除非空目录,它是可以删除非空目录的。
 
‘-f’ : 表示强制删除,不再提示是否要删除,而是直接就删除了,而后面跟一个不存在的文件或者目录时,也不会报错,如果不加 ‘-f’ 选项会报错。
 
[root@localhost ~]# rm /tmp/test/123/123
rm: 无法删除 '/tmp/test/123/123': 没有那个文件或目录
[root@localhost ~]# rm -f /tmp/test/123/123要删除一个目录时,即使加上 ‘-f’ 选项也会报错,所以删除目录一定要加 ‘-r’ 选项。
 
[root@localhost ~]# rm -f /tmp/test/123
rm: 无法删除 '/tmp/test/123': 是一个目录
[root@localhost ~]# rm -rf /tmp/test/123关于rm,使用最多便是 ‘-rf’ 两个选项合用了。不管删除文件还是目录都可以。但是方便的同时也要多注意,万一您的手太快后边跟了/那样就会把您的系统文件全部删除的,切记切记。
 

 
上一篇:忘记root密码怎么办  下一篇:返回列表