如何在 bash 中从绝对路径创建相对路径?
How to create relative path from absolute path in bash?
我在这个目录中:
/home/michal/project/test/my-utils/rel/0.1.0
并且我想在 Linux shell:
中获取到 /home/michal/project/ 的相对路径
../../..
我尝试过使用 sed 进行一些操作,但没有成功创建正则表达式。例如。尝试之一:
pwd | sed -e "s/.*project\///g" | sed -e "s/[^\/]+/../g"
有什么技巧吗?
您可以使用命令 realpath
:
realpath --relative-to=${PWD} /home/michal/project/
来自帮助页面:
--relative-to=FILE print the resolved path relative to FILE
我在这个目录中:
/home/michal/project/test/my-utils/rel/0.1.0
并且我想在 Linux shell:
中获取到 /home/michal/project/ 的相对路径../../..
我尝试过使用 sed 进行一些操作,但没有成功创建正则表达式。例如。尝试之一:
pwd | sed -e "s/.*project\///g" | sed -e "s/[^\/]+/../g"
有什么技巧吗?
您可以使用命令 realpath
:
realpath --relative-to=${PWD} /home/michal/project/
来自帮助页面:
--relative-to=FILE print the resolved path relative to FILE