寻找 POSIX 实用程序来测试文件名是否是符号链接

kjo*_*kjo 6 symlink posix

我知道一些 shell 至少支持文件测试操作符,用于检测文件名何时命名符号链接。

是否有提供相同功能的 POSIX实用程序1


1我在这里可能没有使用正确的术语。我所说的“实用程序”是一个独立的可执行文件,它位于/bin/usr/bin、 等的某处,而不是内置的 shell。

ter*_*don 21

您正在寻找test

-h 路径名

如果路径名解析为存在且是符号链接的文件,则为真。如果路径名无法解析,或者路径名解析为存在但不是符号链接的文件,则为 False。如果 pathname 的最后一部分是符号链接,则不遵循该符号链接。

大多数 shell 将其作为内置程序,但test也作为独立程序存在,可以从其他程序调用而无需调用中间 shell。对于 shell 可能具有的大多数内置函数都是这种情况,除了那些作用于 shell 本身的内置函数(特殊的内置函数,如break, export, set, ...)。

[ -h pathname ]相当于test -h pathname[工作方式与 完全相同test,只是在最后[需要一个额外的]参数。[,如test,作为独立程序存在。

例如:

$ ln -s foo bar
$ /usr/bin/test -h bar && echo y
y
Run Code Online (Sandbox Code Playgroud)