什么文件模式表示一个文件是符号链接(symlink)?
我的用例是检测 git 存储库(及其历史)中的符号链接。我的印象是符号链接是符号链接,因为它的文件模式,而文件模式是工具chmod
设置的。
Ste*_*itt 14
文件模式涵盖两个不同的概念:文件类型和文件权限。文件的模式由调用st_mode
结果中的值表示stat(2)
,并将ls -l
它们一起呈现;有关详细信息,请参阅了解 UNIX 权限和文件类型。
一旦文件被创建,它的类型就不能改变。此外,在 Linux 系统上,您不能指定符号链接的权限;重要的是目标的许可(实际上是完整模式,因为它也决定了符号链接的行为)。请参阅文件权限如何应用于符号链接?详情。在 Mac OS X 上,符号链接可以拥有自己的权限。
最后,git
使用简化模型,识别模式数量有限:
040000
对于目录100644
对于普通文件100755
对于可执行文件120000
对于符号链接您可以使用诸如git cat-file -p 'master^{tree}'
; 之类的命令查看这些值。有关详细信息,请参阅Pro Git。