如何在不打开文件的情况下判断文件是二进制文件还是文本文件?
答案1
如果没有某个程序打开文件并实际读取其内容,就无法验证文件包含什么内容。
如果你问如何在不打开文件的情况下判断文件是二进制文件还是文本文件文本编辑器,这当然是可能的,至少对于大多数文件来说是这样。Linux 包含的file
程序就是为此目的而生的;在命令行中,运行
file name_of_file
(当然,您要用name_of_file
正在测试的文件的实际名称替换它)。程序file
将根据文件的内容打印出对文件类型的合理猜测,而且它通常很擅长猜测。
当然,总会有一些极端情况甚至file
无法分辨。例如,如果一个文件是包含大量高数字 Unicode 字符的 UTF-8 编码文本,那么它可能看起来像一个二进制文件,如果你在不支持 Unicode 的文本编辑器中打开它,就会看到乱码。尽管在这种情况下,我认为file
可能能够正确识别它……关键是,有时很难/根本无法分辨,所以你永远无法 100% 确定你已经正确识别了内容类型。
我想更大的问题是,为什么要区分二进制文件和文本文件?
答案2
这是不可能的。您所能做的就是使用类似工具file
做出最佳猜测。