Linux 中的绝对路径和相对路径,有什么区别?
路径是Linux中最基本的概念之一,这是每个Linux用户都必须知道的。
路径是指文件和目录的引用方式。它给出了文件或目录在 Linux 目录结构中的位置,由名称和斜杠组成。
/home/abhishek/scripts
作为一个系统用户,当您想要访问某个文件或目录,或者必须为命令或脚本指定文件或目录的位置时,就会使用路径。
cat /home/abhishek/scripts/my_script.sh
请记住,如果路径以斜杠“/”开头,则第一个斜杠表示根,路径中的其余斜线只是分隔符。初学者经常混淆根斜杠和分隔符斜杠。
在上图中,第一个路径是以根路径(/)开始的,第二个路径不是以 / 开始的。这两种写法都是正确的,第一个是绝对路径,第二个是相对路径。
Linux中的绝对路径和相对路径
绝对路径始终从根目录(/)开始,比如:
/home/abhishek/scripts/my_scripts.sh
相对路径从当前目录开始。比如,如果你在 /home 目录中,希望访问 my_script.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
那么,以上两种方式,除了文件路径不一样以外,其他的完全一样:
注:在Linux中,文件名区分大小写。可以有大写、小写、数字、点、中划线、下划线以及除了斜杠(/)之外的大多数字符。斜杠(/)作为保留字符,用于根目录和用于分割路径中的目录。
使用带有 . 和 .. 目录的相对路径
有两种特殊的相对路径:
- .(一个点):表示路径中的当前路径;
- ..(两个点):表示父目录,即上一级目录。
如下图,我们要从 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 会比较麻烦,这个时候使用绝对路径更方便。
另一种情况,是在脚本或者程序中使用路径。如果位置是确定的,那么就使用绝对路径;如果项目中有多个文件夹,并且需要在其中之间切换,那么此处需要使用相对路径,因为你不确定最终用户会将程序放在什么地方。
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023