Linux——绝对路径与相对路径

根据档名写法的不同,可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)。 这两种文件名/路径的写法依据是:

  • 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc
  • 相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai ../../home/dmtsai/ 等等。反正开头不是 /就属于相对路径的写法,而你必须要了解,相对路径是以『你当前所在路径的相对位置』来表示的。举例来说,你目前在 /home这个目录下, 如果想要进入 /var/log 这个目录时,可以怎么写呢?
    1、cd /var/log   (absolute)
    2、cd ../var/log (relative)

因为你在 /home 底下,所以要回到上一层 (../) 之后,才能继续往 /var 来移动的! 特别注意这两个特殊的目录:

  • “ . ”  :代表当前的目录,也可以使用 ./ 来表示;
  • “ .. ” :代表上一层目录,也可以 ../ 来代表。

这个 . .. 目录概念是很重要的,你常常会看到 cd .. ./command 之类的指令下达方式, 就是代表上一层与目前所在目录的工作状态喔!很重要的吶!

例题:

如何先进入/var/spool/mail/目录,再进入到/var/spool/cron/目录内? 答:

由于/var/spool/mail 与/var/spool/cron 是同样在/var/spool/目录中,因此最简单的指令下达方法为:

  1. cd /var/spool/mail
  2. cd ../cron

如此就不需要在由根目录开始写起了。这个相对路径是非常有帮助的!尤其对于某些软件开发商来说。 一般来说软件开发商会将数据放置到/usr/local/里面的各相对目录。 但如果用户想要安装到不同目录呢?就得要使用相对路径啰!^_^

例题:

网络文件常常提到类似『./run.sh』之类的数据,这个指令的意义为何? 答:

由于指令的执行需要变量(bash 章节才会提到)的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin, /usr/bin 等为正规),此时要执行指令就得要严格指定该执行档。『./』代表『本目录』的意思,所以『./run.sh』代表『执行本目录下, 名为run.sh 的文件』!

### Java 中的绝对路径相对路径 #### 绝对路径 绝对路径是指从根目录开始描述文件或目录位置的方式。对于Java应用程序而言,在Windows操作系统下,绝对路径可能类似于`C:\Users\username\Documents\example.txt`;而在Linux或MacOS系统中则是像`/home/user/documents/example.txt`这样的形式[^2]。 ```java // 使用绝对路径创建File对象实例 File absFilePath = new File("C:\\path\\to\\your\\file.txt"); ``` #### 相对路径 相对路径则依赖于当前工作目录来定位目标文件的位置。在Java项目里,默认的工作目录通常是项目的根目录(即包含`src`, `pom.xml`等文件的那个文件夹),而classpath指的是编译后的类文件所在的默认输出位置——`target/classes`。因此当提到相对于项目的根路径时,可以简单理解为基于此起点构建出来的路径表达方式[^1]。 ```java // 假设main方法所在源码位于 src/main/java/com/package/Main.java, // 那么下面这条语句表示的是相对于项目根目录的一个相对路径。 File relFilePath = new File("./data/input.txt"); ``` 需要注意的一点是在Web应用开发场景下,涉及到URL映射时,“绝对路径”的概念会有所扩展,它不仅包含了物理磁盘上的完整路径信息,还涉及到了HTTP请求中的上下文路径部分。例如: - 当通过浏览器发送GET请求访问某个Servlet程序时使用的URL形如`http://localhost:8080/myapp/responseDemo2`; - 此处`myapp`即是所谓的“虚拟路径”,它是部署期间指定的应用名称前缀; - 如果要实现页面间的跳转或是资源加载等功能,则应当采用以斜杠开头的形式作为绝对路径,如`/myapp/resource/path`,并借助`request.getContextPath()`动态获取这部分内容以便适应不同环境下的配置差异[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值