Linux readlink 和 realpath 命令新手教程(附实例)
在此页
- Linux realpath 和 readlink 命令
- Q1。如何使用 realpath 和 readlink 解析路径?
- Q2。如何打印相对于目录的解析路径?
- Q3。如何摆脱 .. 在路径中?
- Q4。如何更改分隔符?
- 结论
我们已经讨论了 ln 命令,它可以让您在文件之间创建链接。但也有一些工具可以让您解析这些链接。
在本教程中,我们将讨论 realpath 和 readlink 命令的基础知识,它们在输出中显示已解析的符号链接的意义上是相似的(如果不相同的话)。但在我们这样做之前,值得一提的是,这里的所有示例都已经在 Ubuntu 18.04 LTS 和 Debian 10 上进行了测试。
Linux realpath 和 readlink 命令
如开头所述,realpath 和 readlink 命令都在输出中显示符号链接的解析路径。
以下是它们的语法:
realpath [OPTION]... FILE...
readlink [OPTION]... FILE...
这是他们各自的手册页所说的:
Print the resolved absolute file name
print resolved symbolic links or canonical file names
以下是一些 Q&A 风格的示例,可以让您更好地了解这些工具的工作原理。
Q1。如何使用 realpath 和 readlink 解析路径?
很简单,只需提供文件或路径作为输入。以下示例显示了这两个解析符号链接的命令。

下面是它们如何处理路径:

因此,您可以看到在这两种情况下,这两个命令都成功解析了符号链接。
Q2。如何打印相对于目录的解析路径?
realpath 命令可以让您轻松地做到这一点。例如,假设这是您要尝试执行的操作:
realpath /var/local/Downloadslink
但是,附加要求是使此命令的输出相对于 /home/himanshu 目录。然后以下是您需要执行的命令:
realpath /var/local/Downloadslink --relative-to=/home/himanshu
继承人的输出:
Downloads
所以你可以看到 --relative-to 选项允许你有相对于 /home/himanshu 目录的输出。
Q3.如何摆脱 .. 在路径中?
有时扩展/解析符号链接不是目的,但摆脱路径中的 .. 才是目的。 realpath 命令允许您执行此操作。
您所要做的就是使用 -s 命令行选项。这是一个例子:
realpath -s ../../var/local/Downloadslink
以下是此命令的输出:
/var/local/Downloadslink
Q4.如何更改分隔符?
默认情况下,换行符用作分隔符。但是,这两个命令都提供了一种将 NUL 作为分隔符的方法。
在这两种情况下您需要使用的选项是 -z。
realpath -z [FILE/PATH]
readlink -z [FILE/PATH]
结论
我们在这里讨论的只是这些命令提供的少数选项/功能。完成这些练习后,请前往阅读链接和真实路径手册页(此处)以了解有关这些工具的更多信息。