为什么Bash有两种方法来检查符号链接(-h和-L)?

时间:2016-02-17 17:03:48

标签: bash

为什么 Bash同时提供-LTaskMemoryManager.java来检查文件是否存在且是否为符号链接?

1 个答案:

答案 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    代替。