我目前正在学习 Comptia Linux+ 考试,并且在共享库章节。其中,它说/etc/ld.so.cache文件是二进制文件,但在我的情况下不是。这是一个常规文件,我可以轻松查看其内容,而且它包含库位置。
ls -l /etc/ld.so.cache
-rw-r--r--. 1 root root 154135 Feb 11 11:17 /etc/ld.so.cache
我在几种材料中看到缓存文件是二进制文件,我很好奇为什么会出现这种不匹配?该文件的类型是否依赖于发行版?我正在使用 Fedora 工作站 27
您正在混淆二进制文件和可执行(二进制)文件的定义。
书中正确提到
/etc/ld.so.cache
的是二进制文件(a data file)。如您所见,正在运行
file /etc/ld.so.cache
来自
man ld.so
:从
man ldconfig
此外,
/etc/ld.so.cache
在运行时会重新生成ldconfig
。请参阅ldconfig 和 ld.so.cache 之间的关系仔细检查它确实是一个库文件列表:
或者再次使用
ldconfig -p
:它是一个二进制文件,因为它包含使用名为
ldconfig
. 该结构(可能是 Hashtable)用于有效地搜索和查找共享对象的路径。当您以文本模式打开文件时看到路径的原因是因为部分结构包含字符串或字符串表(路径名称),而这就是文本编辑器可以识别为ASCII
代码字符串的所有内容(因此,显示它屏幕上)。