什么文件模式是符号链接?

Tho*_*ner 9 symlink

什么文件模式表示一个文件是符号链接(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