我知道一些 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)