我有一些文件。它们都是在不同的操作系统中创建的。
有什么方法可以识别每个文件是由哪个操作系统生成的?
答案1
总体来说,不是的,事实并非如此。
在实践中,可能有可能,但这取决于文件和磁盘。如果是文本文件,则可能能够通过换行符识别创建它的操作系统:
CR+LF = Windows
LF = Linux
CR = Mac
当然这些只是默认使用的换行符,并且每个操作系统都有文本编辑器,可以让您手动指定要使用的内容。
如果它是一个二进制文件,那么很可能有一种文件格式来控制其内容的格式,因此无法知道是什么操作系统创建的。
您可能能够从磁盘本身获得有关原始操作系统的线索。您可以检查分区的类型,但这同样不是保证,因为大多数现代操作系统都支持大多数常见分区类型。
您还可以通过文件元数据(如果有)收集有关文件来源的一些信息。
答案2
根据文件类型,你可能最终会得到一个合理的启发式方法(Synetech 指出了一个适用于文本文件的启发式方法)。但是,如果你希望获得操作系统生成的所有文件固有的某种指纹,(与 tcp/ip 实现一样) 我认为迄今为止还不存在类似的事情。