首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在makefile中,如何获取从一个绝对路径到另一个绝对路径的相对路径?

在Makefile中,可以使用shell命令来获取从一个绝对路径到另一个绝对路径的相对路径。具体方法如下:

  1. 使用cd命令切换到第一个绝对路径目录。
  2. 使用pwd命令获取当前目录的绝对路径。
  3. 使用cd命令切换到第二个绝对路径目录。
  4. 使用pwd命令获取当前目录的绝对路径。
  5. 使用realpath命令获取两个绝对路径之间的相对路径。

以下是一个示例Makefile规则,用于获取从/home/user/project/home/user/project/src的相对路径:

代码语言:makefile
复制
relative_path := $(shell cd /home/user/project && pwd)
relative_path := $(shell cd /home/user/project/src && pwd)
relative_path := $(shell realpath --relative-to=$(relative_path) $(shell pwd))

all:
    @echo "Relative path: $(relative_path)"

在这个示例中,我们首先使用cdpwd命令获取两个绝对路径的绝对路径,然后使用realpath命令获取相对路径。最后,我们在all目标中输出相对路径。

需要注意的是,这个方法依赖于realpath命令,该命令在大多数Linux发行版中都可用,但在macOS中可能不可用。在macOS中,可以使用brew install coreutils安装realpath命令。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

HTML中如何表示根目录?HTML的绝对路径与相对路径

路径指文件存放的位置,在网页中利用路径可以引用文件,插入图像、视频等。表示路径的方法有两种:相对路径,绝对路径。以下讨论均是在HTML环境下进行。 HTML中如何表示根目录?.../aaa" //表示当前目录的上级目录下的aaa "bbb/aaa" //表示当前目录的bbb目录下的aaa HTML之绝对路径与相对路径 相对路径 相对路径是指目标相对于当前文件的路径,网页结构设计中多采用这种方法来表示目标的路径...相对路径有多种表示方法,其表示的意义不尽相同。..../ :代表文件所在的目录(可以省略不写) ../ :代表文件所在的父级目录 ../../ :代表文件所在的父级目录的父级目录 / :代表文件所在的根目录 值得注意的是,(/ :代表文件所在的根目录)其实可以理解成项目内部的绝对路径.../html/css/css1/000.css"/> 绝对路径 绝对路径是指完整的网址,假设图一中项目的网站域名为www.quanbaike.com,那么000.css的绝对路径应该是 https://www.quanbaike.com

11.9K30

如何在 MSBuild 的项目文件 csproj 中获取绝对路径

通常我们能够在 csproj 文件中仅仅使用相对路径就完成大多数的编译任务。但是有些外部命令的执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同的含义。...这个时候,就需要将相对路径在 csproj 中转换为绝对路径来使用。 本文介绍如何在项目文件 csproj 中将一个相对路径转换为绝对路径。...在 MSBuild 4.0 中,可以在 csproj 中编写调用 PowerShell 脚本的代码,于是获取一个路径的绝对路径就非常简单: 1 [System.IO.Path]::GetFullPath...('$(WalterlvRelativePath)') 具体到 csproj 的代码中,是这样的: 1 2 3 4 5 6 ...你可以阅读我的其他篇博客了解到 $(OutputPath) 其实最终都会是相对路径: 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - walterlv 如何更精准地设置

29230
  • 【Java 进阶篇】Java Response 重定向详解

    在Java Web开发中,重定向(Redirect)是一种常见的技术,用于将用户从一个URL地址自动重定向到另一个URL地址。...重定向是一种Web服务器或Web应用程序将用户从一个URL地址导航到另一个URL地址的技术。它通常用于以下情况: 将用户从一个页面引导到另一个页面。 更改或更新URL以反映新的资源位置。...以下是如何在Java中执行重定向的步骤: 步骤1:获取HttpServletResponse对象 首先,在Servlet或JSP中,你需要获取当前请求的HttpServletResponse对象。...有两种常见的重定向方法:相对路径重定向和绝对路径重定向。 相对路径重定向 相对路径重定向是指将用户重定向到相对于当前请求URL的新URL。...id=123” 重定向到简洁的URL “/article/123”。 5. 总结 重定向是Java Web开发中的一项关键技术,用于将用户从一个URL地址引导到另一个URL地址。

    1.5K30

    HttpServletRequest 类

    base 标签的作用 Web 中的相对路径和绝对路径 web 中 / 斜杠的不同意义 HttpServletRequest类有什么作用 每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的...请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。.../index.html">跳回首页 Web 中的相对路径和绝对路径 在 javaWeb 中,路径分为相对路径和绝对路径两种: 相对路径是: ....表示上一级目录 资源名 表示当前目录/资源名 绝对路径: http://ip:port/工程路径/资源路径 在实际使用中,路径都使用绝对路径,而不简单的使用相对路径。...1、绝对路径 2、base+相对 web 中 / 斜杠的不同意义 在 web 中 / 斜杠 是一种绝对路径。

    28710

    为什么 Vite 的请求有时候是相对路径,有时候是 @fs + 绝对路径?

    在开发项目时,我发现有时候请求资源的路径是相对路径,有时候是 /@fs/ 开头的绝对路径,这是为什么呢? Vite 的请求路径种类 • 相对路径,相对于根目录的路径。...如果文件在 Vite root 根目录中,则直接使用相对路径 但如果在 Vite root 根目录外,相对路径就需要使用 ../ 这种,这种形式不能马上看出文件的位置,因此直接使用绝对路径更好,但是需要跟相对路径做区分...url = resolved.id } return [url, resolved.id] } 从这里可以看出,相对路径和绝对路径的使用场景,就是根据文件是否在 root 目录中来决定的...到这里,其实已经解决了我们的问题了,但我们可以想得更深: 既然可以绝对路径访问文件,那输入另一个的路径,是不是就能访问到别的文件了?...总结 本文以一个开发中的一个小问题作为开头,提出疑问:为什么 Vite 的请求有时候是相对路径,有时候是 /@fs/ 开头 + 绝对路径?

    2.2K30

    HTML常用文本标记,超级链接和路径描述

    路径描述 路径分为绝对路径和相对路径,绝对路径用得不多可以说几乎不用,因为用绝对路径是把路径写死了,一旦工程移动到其他电脑上,这个路径就不可用了。...所谓的超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序。...上面所介绍的路径描述在超级链接里会应用到,当需要使用超级链接来链接工程下的某个html文件时可以使用相对路径和绝对路径,但是尽量使用相对路径。...命名锚记像一个迅速定位器一样是一种页面内的超级链接,运用相当普遍,能在一个页面里自由跳转。 使用命名锚记可以在文档中设置标记,这些标记通常放在文档的特定主题处或顶部。...同样的可以跳转到另一个网页中的锚点,示例: ? 运行结果: ? ?

    1.9K20

    为什么 Vite 的请求有时候是相对路径,有时候是 @fs + 绝对路径?

    在开发项目时,我发现有时候请求资源的路径是相对路径,有时候是 /@fs/ 开头的绝对路径,这是为什么呢?Vite 的请求路径种类相对路径,相对于根目录的路径。...如果文件在 Vite root 根目录中,则直接使用相对路径但如果在 Vite root 根目录外,相对路径就需要使用 ../ 这种,这种形式不能马上看出文件的位置,因此直接使用绝对路径更好,但是需要跟相对路径做区分...url = resolved.id } return [url, resolved.id]}从这里可以看出,相对路径和绝对路径的使用场景,就是根据文件是否在 root 目录中来决定的到这里,...其实已经解决了我们的问题了,但我们可以想得更深:既然可以绝对路径访问文件,那输入另一个的路径,是不是就能访问到别的文件了?...总结本文以一个开发中的一个小问题作为开头,提出疑问:为什么 Vite 的请求有时候是相对路径,有时候是 /@fs/ 开头 + 绝对路径?

    4K20

    第80篇:Weblogic上传漏洞在不知绝对路径情况下拿shell方法

    但是我们经常遇到的情况是“当前的工作目录”是空的,或者是被其它攻击者给随意更改成错误的路径,导致不知道绝对路径导致上传webshell失败,那如何解决这个问题呢?...这里需要注意的是,上述路径中/AdminServer/在不同的weblogic安装环境中可能不一样的,它可能是/Server-0/或者/app_server1/,它可能是管理服务器名称,也可能是被管服务器...路径中的/4mcj4y/值也不是固定的,它是由/AdminServer/结合另一个变量计算出来的,所以我们只需要知道/AdminServer/处的值就好办了。...IIOP协议获取相对路径 经过研究发现,如果目标weblogic端口的iiop协议开放的话,直接向iiop协议端口7001或者其它端口发送一个数据包,在返回数据包中就会有获取相对路径最关键的服务器实例名称...XXE漏洞获取weblogic的绝对路径 经过仔细观察发现,此上传漏洞的编号是CVE-2018-2894,在CVE-2018-2894编号附近,有一个XXE漏洞CVE-2018-3246,因为两个漏洞编号相近

    64310

    shell获取当前工作目录绝对路径

    一般我们写Shell脚本的时候,都倾向使用绝对路径,这样无论脚本在什么目录执行,都应该起到相同的效果,但是有些时候,我们设计一个软件包中的工具脚本或者远程调用某个脚本时,可能使用相对路径更加灵活一点,因为你不知道用户会在哪个目录执行你的程序...,于是问题就来了,如何获取当前正在执行脚本的绝对路径?...你可以试试bash shell/a.sh,a.sh 内容是 pwd,你会发现,显示的是执行命令的路径 /home/ljl,并不是 a.sh 所在路径:/home/ljl/shell/a.sh 另一个误人子弟的答案...这个$0有可能是好几种值,跟调用的方式有关系: 使用一个文件调用bash,那$0的值,是那个文件的名字(没说是绝对路径噢) 使用-c选项启动bash的话,真正执行的命令会从一个字符串中读取,字符串后面如果还有别的参数的话...,使用从$0开始的特殊变量引用(跟路径无关了) 除此以外,$0会被设置成调用bash的那个文件的名字(没说是绝对路径) 简单介绍一下获取方法如下: #!

    11.7K70

    JavaWeb复习

    实现servlet程序 编写一个类实现servlet接口 实现service方法处理请求并响应数据 到web.xml中配置servlet程序的访问地址 servlet实现类 /** * @create...2.获取当前的工程路径,格式:/工程路径 3.获取工程部署后在服务器磁盘上的绝对路径 4.像map一样存取数据 HTTP协议 所谓Http协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则...,从一次资源跳转到另一个资源的操作叫做请求转发。...Web中的相对路径和绝对路径 在javaWeb中,路径分为相对路径和绝对路径两种: 相对路径: . 表示当前目录 .....表示上一层目录 资源名 表示当前目录/资源名 绝对路径: http://ip:port/工程路径/资源路径 web中 / 斜杠的不同意义 在web中 / 斜杠是一种绝对路径 / 斜杠 如果被浏览器解析

    73510

    【Java 进阶篇】Java Response 路径详解

    在Java Web开发中,处理HTTP响应的路径是一个重要的概念。了解如何正确处理和管理路径对于构建健壮的Web应用程序至关重要。...本篇博客将详细介绍Java中的HTTP响应路径,包括路径的组成、相对路径和绝对路径的区别、如何构建和处理路径,以及路径在Web应用中的常见应用。 什么是HTTP响应路径?...在Web开发中,HTTP响应路径指的是Web服务器响应客户端请求时返回的资源的路径。这个路径决定了客户端将如何访问和获取这些资源。...相对路径和绝对路径的区别 在处理HTTP响应路径时,你会经常遇到相对路径和绝对路径这两个概念。它们之间的区别如下: 相对路径(Relative Path): 相对路径是相对于当前资源的路径。...结论 HTTP响应路径是Web开发中的关键概念,它决定了客户端如何访问和获取资源。了解相对路径和绝对路径的区别以及如何构建和处理路径对于构建稳健的Web应用程序至关重要。

    30130

    yhd-VBA从一个工作簿的某工作表中查找符合条件的数据插入到另一个工作簿的某工作表中

    今天把学习的源文件共享了出来,供大家学习使用 上次想到要学习这个 结合网友也提出意见,做一个,如果有用,请下载或复制代码使用 【问题】我们在工作中有时要在某个文件(工作簿)中查找一些数据,提取出来...想要做好了以后同样的工作就方便了 【想法】 在一个程序主控文件中 设定:数据源文件(要在那里查找的工作簿) 设定:目标文件(要保存起来的那个文件) 输入你要查找的数据:如:含有:杨过,郭靖的数据。...要复制整行出来 主控文件设定如图 数据源文件有两个工作表 查找到"郭靖"的数据保存到目标文件的【射雕英雄传】工作表 查找到"杨过"的数据保存到目标文件的【第一个】工作表 【代码】 Sub...从一个工作簿的某工作表中查找符合条件的数据插入到另一个工作簿的某工作表中() Dim outFile As String, inFile As String Dim outWb As...并转发使更多的人学习到。

    5.5K22

    如何从Bash脚本本身中获得其所在的目录

    问: 如何从Bash脚本本身中获得其所在的目录? 我想使用Bash脚本作为另一个应用程序的启动器。我想把工作目录改为Bash脚本所在的目录,以便我可以对该目录下的文件进行操作,像这样: $ ....但是在以相对路径的方式去执行脚本时,获取的目录信息是相对路径,不能满足其他需要获取绝对路径的场景。 如果要获取绝对路径,可以使用如下方法: #!...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录的绝对路径: #!...编程中$(cmd) 和 `cmd` 之间有什么区别 为什么我不能在脚本中使用"cd"来更改目录 为什么在可执行文件或脚本名称之前需要..../(点-斜杠),以便在bash中运行它 shell脚本对编码和行尾符敏感吗

    34920

    关于绝对路径和相对路径

    作为一个phper,一开始学习的时候,可能都接触过绝对路径和相对路径,但是也可能很多没学基础的人,直接撸tp去了,根本不了解路径,一遇到问题就两眼一抹黑瞎几把问,所以,今天就来讲讲关于路径的事吧....需要跟服务端交互,才能正确的获取文件信息,浏览器通过url绝对路径,可获取到http服务器绑定目录的文件信息 url相对路径,在html代码中显示,可通过相对路径获取到该网页和http服务器绑定目录下的文件信息...用户绝对路径,在浏览器地址栏和标签中,都可通过本地绝对路径去获取本机的文件,例如在浏览器输入:"E:\tioncico\othe\a.cn\test.txt",即可获取到本机E磁盘下的这个文件...用户相对路径,同样,在浏览器中,如果你直接通过"E:\tioncico\othe\a.cn\index.html"打开一个html,里面html标签如果写了绝对路径,也可通过该相对路径,获取到本机磁盘下的相对路径文件...很明显,路径是以调用的文件为基准的.那该如何获取到test.php的目录呢? 可通过__DIR__常量获取当前文件目录

    3K10

    Linux文件和目录管理相关命令(一)

    从今天起小编将为大家带来一系列的Linux文件和目录管理的相关命令,正在做Linux运维工程师的小伙伴,来看一看希望对你有帮助哦~ 一、目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换...在之前的学习中,就反复的强调了Linux的目录是”树状目录”。...假设我们需要在任意一个目录下切换到另一个目录下,通常是使用的是cd这个命令,此时在写切换的目录名时就有两种书写方式,也就是我们常说的使用”相对路径”与”绝对路径”来书写 绝对路径:路径的写法【一定由根目录...相对路径意指相对于当前的工作目录 我们知道,在Linux的系统中完整的文件路径名的长度最大可以达到4096个字符,所以一个文件路径名太长的话,此时写绝对路径时就非常的麻烦,而且可能写错,所以此时选择使用相对路径来写就会简单一些...) dirname (获取路径的目录名) 完整的文件名最长我们可以为4096个字符。

    1.1K40

    如何解决 `FileNotFoundError: No such file or directory` 错误:完整指南

    FileNotFoundError 是 Python 中的一个异常,表示在尝试打开一个不存在的文件时触发的错误。该错误的常见原因包括: 路径错误:文件路径拼写错误或路径不正确。...文件未创建:尝试读取一个尚未创建或生成的文件。 文件权限问题:程序没有足够的权限访问指定文件。 相对路径与绝对路径混淆:开发中常见的路径问题。...通常发生在程序试图读取另一个程序尚未生成的输出文件。 解决方法:在读取文件前,确保文件已被创建。...相对路径与绝对路径混淆 开发过程中,我们常常混淆相对路径和绝对路径,导致程序无法找到目标文件。 解决方法:使用绝对路径或确保相对路径的基准一致。...希望这篇文章对你有所帮助,如果你有任何疑问,欢迎在评论区留言。记得关注我,获取更多技术分享!

    1.5K20
    领券