Linux 中的绝对路径与相对路径:有什么区别?
在这一重要的 Linux 学习章节中,了解 Linux 中的相对路径和绝对路径。它们之间有什么区别以及您应该使用哪一个。
路径是Linux中最重要的概念之一,这是每个Linux用户都必须知道的。
路径是指引用文件和目录的方式。它给出了 Linux 目录结构中文件或目录的位置。它由名称和斜杠语法组成。
/home/abhishek/scripts
作为用户,当您想要访问某个文件或目录,或者必须将文件或目录的位置提供给命令或脚本时,您必须使用该路径。
cat /home/abhishek/scripts/my_script.sh
请记住,如果路径以斜杠“/”开头,则第一个斜杠表示根。路径中的其余斜杠只是分隔符。初学者经常会混淆根斜杠和分隔斜杠。
在上图中,您有第一个以根斜线开头的路径。还有另一个不以/开头的路径(即 root)。
两者都是正确的。第一个是绝对路径,第二个是相对路径。让我们详细看看它们。
Linux 中的绝对路径和相对路径
绝对路径始终从根目录 (/) 开始。例如,/home/abhishek/scripts/my_scripts.sh。
相对路径从当前目录开始。例如,如果您位于 /home 目录中并且想要访问 my_scripts.sh
文件,则可以使用 abhishek/scripts/my_scripts.sh。
了解绝对路径和相对路径之间的区别
您知道 Linux 中的目录结构类似于树的根。一切都从根源开始,并从那里分支出来。
现在假设您位于 abhishek
目录中,并且想要访问 my_scripts.sh
文件。
绝对路径用绿色虚线表示,相对路径用黄色虚线表示。
假设您想使用 ls 命令查看文件 my_script.sh
的属性。
您可以使用以根目录(/)开头的绝对路径:
ls -l /home/abhishek/scripts/my_script.sh
或者,您可以使用相对路径(从当前目录开始,而不是/):
ls -l scripts/my_script.sh
这两个命令将产生相同的结果(文件的路径除外)。
使用相对路径与 .和..目录
让我再举一个例子来解释绝对路径和相对路径的区别。但在此之前,您应该了解两个特殊的相对路径:
。 (单点)表示路径中的当前目录。
..(两个点)表示父目录,即上一级目录。
事情一会儿就会清楚。看看场景。在本例中,您想要从目录 abhishek
转到目录 prakash
。
可以使用cd命令来切换目录。绝对路径在这里非常明显:
cd /home/prakash
要使用相对路径,您必须使用特殊的相对路径:
cd ../prakash
为什么使用..?因为相对路径需要从当前目录开始的方向,并且您必须告诉 cd 命令在下降之前向上一级。 ..
将您带到 /home
目录,然后从那里转到 prakash
目录。
我希望现在事情已经清楚多了。
您应该使用哪一个?相对路径还是绝对路径?
老实说,这个问题没有直接的答案。这确实取决于具体情况。
如果您位于目录层次结构的深处并且必须向上或向下移动级别,那么使用相对路径会更容易。
假设您位于 /home/username/programming/project/interface/src/header 目录中,并且必须访问 /home/username/programming/project/interface/bin 目录中的某些内容。使用相对路径可以让您免于输入所有冗长的目录名称,您可以在此处简单地使用 ../../bin 。
但是,如果您必须从 /home/username/programming/project/interface/src/header 目录访问 /usr/bin 目录中的某些内容,请使用 ../../../../../ 之类的内容。 ./usr/bin 并不是明智之举。在这种情况下,使用绝对路径是明智的做法。
另一种情况是在脚本或程序中使用路径。当您确定位置后,请使用绝对路径。如果您的项目有多个文件夹并且需要在目录之间切换,则可以在此处使用相对路径,因为您不知道最终用户将在主目录或某些开发目录中复制所有项目文件。
换句话说,您应该了解这两种方法,并根据您的情况使用更容易的一种。
我希望您现在对 Linux 中的路径和导航有了更好的了解。如果您有疑问或建议,请留言。