前言

在操作系统中,路径指的是文件的存放位置,例如windows中C:\Users\HEAD表HEAD目录的路径。在linux中类似,只是路径的描述方式有区别,例如/home/scg表示scg目录的路径。在任何命令中,只要告诉我们要操作的文件的路径,那么就能找到那个文件。

绝对路径与相对路径

指明文件的路径有两种方式,分别是绝对路径和相对路径。

绝对路径

绝对路径指的是由根(/)开始写的路径,目录层级用斜杠(/)来分隔的路径。例如:

[root@cuixi ~]# pwd
/root
[root@cuixi ~]# cd /home/scg    <--使用绝对路径的方式切换到scg目录中
[root@cuixi scg]# cd            <--回到root家目录
[root@cuixi ~]# cd scg          <--不使用绝对路径,系统可能找不到scg
-bash: cd: scg: No such file or directory

相对路径

相对路径指的是从当前所在位置(工作目录)开始写,一般是以.(当前目录)或者..(父目录)开头的路径。目录层级同样是用斜杠(/)来分隔。例如:

[root@cuixi ~]# pwd              <--当前目录为/root
/root
[root@cuixi ~]# cd ../home/scg   <--使用相对路径切换到scg,../home/scg表示当前目录的父目录下的home下的scg。
[root@cuixi scg]#
[root@cuixi scg]# ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos     <-- 查看当前目录下的内容
[root@cuixi scg]# cd ./Downloads/  <--相对路径方式切换到当前目录下的Downloads
[root@cuixi Downloads]# pwd
/home/scg/Downloads
[root@cuixi Downloads]# cd ../../../root  <--相对路径方式切换到root目录下
[root@cuixi ~]# pwd
/root

注意:当路径是以点(./)开头的时候,./ 可以省略,比如上面例子中的cd ./Downloads 可以写成cd Downloads

[root@cuixi scg]# ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[root@cuixi scg]# cd Downloads/   <-- ./Downloads/的简写方式。
[root@cuixi Downloads]# pwd
/home/scg/Downloads
[root@cuixi Downloads]#

总结

绝对路径是从根目录开始的,只要文件存在,那么文件的绝对路径就是固定不变的。而相对路径是相对当前工作目录而言的,只要工作目录发生了变化,对同一个文件的相对路径就会发生变化,所以文件的相对路径不是固定不变的。

在日常使用过程中,根据自己的需要选择绝对路径还是相对路径,一般情况下,哪一个写起来比较简单就用哪一个。