一、说明

在Linux中,文件路径分为两种:绝对路径和相对路径。路径是指文件和目录的引用方式,最基本的概念之一。它给出了文件或目录在 Linux 目录结构中的位置,由名称和斜杠组成。

作为一个系统用户,当想要访问某个文件或目录,或者必须为命令或脚本指定文件或目录的位置时,就会使用路径。

、绝对路径

在Linux系统中,绝对路径一定是由根目录 / 开始写起。

简单判断,如果一个命令后面的路径是以 / 开头,就是绝对路径,不是,就是相对路径了。绝对路径是从linux最底层的根(/)开始算。

例如:

cd /etc/sysconfig/network-scripts/

/etc/sysconfig/network-scripts/就是绝对路径;

绝对路径:/etc/sysconfig/network-scripts/从根开始的路径

三、相对路径

相对路径不是从根目录 / 开始写起,都是相对路径。

相对路径取决于当前的位置。

两种方式

1.使用“../”来表示上一级目录,“../../”表示上上级的目录

示例:[root@centos7 wangwang]#cd ../../etc/sysconfig/

此种写法,以..开头就是,就是相对路径

.则是表示目前所在的目录,

..则表示目前目录位置的上一层目录。

2.其他非根开头的路径,从当前所在的工作目录开始,直接进入到下级目录。

所以,cd home , home就是指当前工作目录下的home目录,也就是相对路径。

相对路径就是相对当前你所在路径开始算。

示例:

[root@centos7 /]#cd home

可以使用pwd命令查看当前工作目录

四、绝对路径和相对路径的使用

例1:

绝对路径

[root@centos7 wangwang]#cd /home/wangwang
[root@centos7 wangwang]#pwd
/home/wangwang

相对路径

[root@centos7 ~]#cd ../home/wangwang
[root@centos7 wangwang]#pwd
/home/wangwang
../home/wangwang就是相对路径

注意后面两个的对比,../是回到上一级然后在往后算。

例2:

假设我们使用已在上级目录中(wangwang),需要查看下级目录的文件信息,

绝对路径

[root@centos7 wangwang]#ls /home/wangwang/dir1

dir2

相对路径

[root@centos7 wangwang]#ls dir1

dir2

例3:

usr/bin跳到/home/jiang/dir

相对路径:

[root@centos7 bin]#pwd
/usr/bin
[root@centos7 bin]#cd ../../home/jiang/dir
[root@centos7 dir]#pwd
/home/jiang/dir

绝对路径:

[root@centos7 dir]#cd /home/jiang/dir

例4:

假设位于/home/wangwang/dir1/dir2/dir3/dir4目录中,并且需要访问 /home/wangwang/dir1/dir2/test目录中。使用相对路径可以避免键入所有冗长的目录名,只需在此处使用 ../../test即可。

[root@centos7 dir4]#pwd
/home/wangwang/dir1/dir2/dir3/dir4
[root@centos7 dir4]#cd ../../test
[root@centos7 test]#pwd
/home/wangwang/dir1/dir2/test

例5:

假设位于/home/wangwang/dir1/dir2/dir3/dir4/dir5目录中,并且需要访问 /home/wangwang/dir1/dir2/test目录中。使用相对路径可以避免键入所有冗长的目录名,只需在此处使用 ../../../test即可。

[root@centos7 dir5]#pwd

/home/wangwang/dir1/dir2/dir3/dir4/dir5

[root@centos7 dir5]#cd ../../../test

[root@centos7 test]#pwd

/home/wangwang/dir1/dir2/test

注意:

相对目录是从当前目录开始,与目标路径的变化量,相差的路径。

要进入的路径目录/usr/bin,../../就是相当于当前目录的两级。

要进入的路径目录/home/wangwang/dir1/dir2/test,../../../test就是相当于不同的三级目录。

但是,如果你要从 /home/wangwang/dir1/dir2/dir3/dir4/dir5目录访问 /usr/bin 目录中的某些内容,那么使用 ../../../../../../../usr/bin会比较麻烦,这个时候使用绝对路径更方便。

(因为有7个目录都不同,需要返回到根)

例6:假设位于/home/wangwang/dir1/dir2目录中,并且需要访问 /home/wangwang/dir1/dir2/dir3/dir4/dir5目录中。使用相对路径可以避免键入所有冗长的目录名,只需在此处使用./dir3/dir4/dir5/即可。

[root@centos7 dir2]#pwd
/home/wangwang/dir1/dir2
[root@centos7 dir2]#cd ./dir3/dir4/dir5/
[root@centos7 dir5]#pwd
/home/wangwang/dir1/dir2/dir3/dir4/dir5

五、总结

为什么要使用 ../

因为相对路径要从当前目录开始,我们需要告诉 cd 命令向上一级,将我们带到 上级相同的目录,然后从那里在进入到 目标目录。

使用哪种路径方式,这要视情况而定。变化的路径太长,则就不用相对路径,还是用绝对路径。

如果当前所在的目录层次结构比较深,并且需要向上或者向下一级移动,那么使用相对路径会更简单。

另一种情况,是在脚本或者web程序中使用路径。如果位置是确定的,那么就使用绝对路径;如果web相关,不确定最终用户会将程序放在什么地方,那么此处需要使用相对路径。

绝对路径和相对路径是路径的两种表现形式,应遵循最短路径原则。

(使用最短的路径操作某个文件或者目录)。

如果切换的目录离当前目录近可以使用相对路径

如果切换的目录离根目录近可以使用绝对路径

如果切换的目录离根目录和当前目录都一样那么使用绝对路径,因为这样路径很清楚和明确,方便阅读。

Logo

更多推荐