Linux绝对路径和相对路径详解
前言
在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如Linux文件系统的层次结构你知道吗?中提到的 /home/usr就表示的是 usr目录所在的路径。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。
两种路径
指明一个文件存放的位置,有两种方法,分别是使用绝对路径和相对路径。
我们知道,Linux 系统中所有的文件(目录)都被组织成以根目录“/”开始的倒置的树状结构。
绝对路径一定是由根目录 / 开始写起。例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin,代码如下:
[root@localhost ~] bin
bash:bin:command not found <-- 没有找到
[root@localhost ~] /usr/bin
bash: /usr/bin: is a directory <-- 是一个目录
可以看到,如果仅传递给 Linux 系统一个文件名,它无法找到指定文件;而当将 bin 文件的绝对路径传递 Linux 系统时,它就可以成功找到。
和绝对路径不同,相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。使用相对路径表明某文件的存储位置时,经常会用到前面讲到的 两个特殊目录,即当前目录(用 . 表示)和父目录(用 .. 表示)。
当我们使用 root 身份登录 Linux 系统时,当前工作目录默认为 /root,如果此时需要将当前工作目录调整到 root 的子目录 Desktop 中,当然可以使用绝对路径,代码如下:
[root@localhost ~] pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~] cd /root/Desktop
[root@localhost Desktop ~] pwd
/root/Desktop
说明:pwd 和 cd 命令,具体用法会在后续文章中作详细解释。
可以看到,通过使用绝对路径,我们成功地改变了当前工作路径。但除此之外,使用相对路径的方式会更简单。因为目前处于 /root 的位置,而 Desktop 就位于当前目录下,输入以下代码:
[root@localhost ~] pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~] cd ./Desktop #注意有个点
[root@localhost Desktop] pwd
/root/Desktop
此代码中,./Desktop 表示的就是 Destop 文件相对于 /root 所在的路径。
再举一个例子,如果以 root 身份登录 Linux 系统,并实现将当前工作目录由 /root 转换为 /usr 目录,有以下 2 种方式:
使用绝对路径
[root@localhost ~] pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~] cd /usr
[root@localhost ~] pwd
/usr
使用相对路径
[root@localhost ~] pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~] cd ../usr <-- 相对 root,usr 位于其父目录,因此这里要用到 ..
[root@localhost ~] pwd
/usr
总而言之
绝对路径是相对于根目录 / 的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。
长按复制:ManjaroLinux
参考链接:http://c.biancheng.net/view/5862.html