阅读Unix可执行文件

rm5edbpk  于 11个月前  发布在  Unix
关注(0)|答案(1)|浏览(209)

我有“Unix可执行文件”,没有文件扩展名。在Mac中,我可以在预览模式下看到内容,但不确定是否有其他方式可以看到内容。
寻找一种方法来读取的内容和存储在其他一些文件位置的JPG文件或PNG文件格式。
不知道怎么用Java来读。
在Mac终端,我尝试“文件名”,并得到以下输出。
PNG图像数据,110 x 103,8位/彩色RGB,非隔行扫描

mv1qrgav

mv1qrgav1#

1.无论是报告'unix可执行文件'是过于简化的事情。它只是'一个文件'(unix与此有关),文件系统有一个“可执行”标志的概念,你可以在任何文件上设置或清除它,与文件的内容是否可执行完全无关。你可以设置任何文件可执行,或不,特别是考虑到例如Mac和Linux可以挂载DOS文件系统(大多数U盘都使用它,因为每个操作系统都可以处理这些文件系统),它们没有这个标志,而“为了方便”意味着操作系统的行为就好像所有的文件都有这个标志,你不能删除它。换句话说,这是一个谎言,忘记这一部分。

  1. file只是猜测。这不是file的错,该工具的作者也绝不是懒惰的。这是数学上不可能的-磁盘系统不知道文件包含什么类型的数据,它只知道:这个文件有这些字节,它在那里结束。file只是看了看内容,在黑暗中进行了一次疯狂的尝试。它的疯狂尝试是体面的,但不能保证。我可以给你一个文件,这是 * 两者 * 一个法律的zip文件(将unzip和一切都很好),* 和 * 是一个PNG图像同样好(在浏览器、预览等中呈现)。file在这里可能告诉你什么?完全随机的垃圾也是**一个有效的ISO-8859-1的文本文件。要知道这显然不是文件的预期目的,唯一的方法是使用人工智能算法来实现内容在这个星球上的任何语言中,都不可能形成清晰的单词。这是一个非常困难的问题,file并没有试图解决它。
    1.因此,如果你只有磁盘上的一个文件,就没有真实的方法知道它是否是一个PNG文件。文件扩展名是一个很好的提示,但如果它丢失了,你只是猜测。你可以把它扔到PNG阅读器中,如果它没有崩溃,它可能是,但它可能只是一个带有随机静态的图片,因为它不是真正的PNG文件。
    1.如果你想转换PNG文件,ImageIO可以做到这一点。
    1.一般来说,给你这个文件的进程通常知道格式。例如,如果你通过网络下载它,网络服务器不仅仅发送这些字节。它还发送这个头:Content-Type: image/png. * 那个 *(而不是文件扩展名)是Web服务器的规范真理。如果将此文件保存到磁盘的进程选择获取该信息并将其扔进垃圾桶,好吧,现在你只能猜测了。如果可能的话,回到这个过程的那一部分并修复它,这样这个信息就不会再被扔到垃圾箱里了。例如,如果你有一个shell脚本,它使用wget下载一个资源,然后你不知道它是PNG还是JPG,或者是HTML中的“文件找不到”解释页面的输出,则修复wget以保存该报头并相应地作出React。

相关问题