为什么 Bash同时提供-L
和TaskMemoryManager.java
来检查文件是否存在且是否为符号链接?
答案 0 :(得分:2)
the POSIX test standard需要-h
和-L
。因此,bash 必须包括两者兼容。
但是......为什么?这是一个历史问题:旧版本的POSIX根本不需要对符号链接进行测试操作,这一限制最近在2004年(问题6)得到了纠正。在此之前,不同的UNIX实现以互不兼容的方式实现了这一点;并且POSIX标准通过要求两者来统一这种差异。
值得注意的是,在现代BSD test
中,-h
被记录为遗留形式,-L
是其现代替代形式。来自the FreeBSD man page for test
:
-h
文件 如果 file 存在且为符号链接,则为True。这个运营商 保留与以前版本的兼容性 这个计划。不要依赖它的存在;使用-L
代替。