我正在尝试发送应用程序文件 /usr/bin/file 的错误报告
但咨询该男子并发送电子邮件
错误 请报告错误并将补丁发送到错误跟踪器:http://bugs.gw.com/ 或邮件列表⟨[电子邮件受保护]⟩ (访问 http://mx.gw.com/mailman/listinfo/file首先订阅)。
让我发现邮件地址不存在。
还有其他与社区沟通的方式吗?希望这里的问题已经是其中的一部分:)
这是我的电子邮件:
可能的功能故障:该
--extension
选项似乎没有输出任何内容$ file --extension "ab.gif" ab.gif: ???
如果能够轻松地使用此输出将文件重命名为其正确的扩展名,将会非常有用。
像 file 这样的东西
--likely_extension
只会输出可能检测到的扩展名,或者如果检测太低则输出错误像这样:
$ file --likely_extension "ab.gif" gif
不过更好的是一个
--correct_extension
选择:$ file --correct_extension "ab.jpg" $ ls ab.gif
此应用程序的 Tyvm :)
答案1
您正在按照正确的程序提交问题或增强请求:如果程序的文档提到了如何执行此操作,请按照这些说明进行操作。
不幸的是,项目经常会终止,或者您所拥有的版本中的说明不再准确。在这些情况下,事情会变得有点困难。一种可能的通用方法是向您的发行版提交错误;不过,成功可能会有些偶然……(我应该提到,通常最好报告一个漏洞如果您使用的是软件包,则访问您从中获取软件包的发行版;如果打包版本比当前“上游”版本旧,并且您没有检查问题是否仍然存在,则尤其如此。)
具体来说file
,官方文档已更新,提及错误跟踪器和邮件列表已关闭,并且它还为当前维护者提供了直接电子邮件地址,您可以使用该地址与他联系。
答案2
此外斯蒂芬·基特的回答,您可以考虑(特别是如果您自己是开发人员,并且如果该程序(file
在您的情况下)具有不太难理解的源代码)获取该程序的源代码(可能来自您的发行版)-因为它是自由软件- 并修补它,并发送补丁。
如果你花时间研究源代码,您可能会提出更好的错误报告。
如果你花更多的时间提出修复补丁,您可能会被更认真地考虑(恕我直言,您的行为更加本着自由软件的精神)。
所以使用所提供的自由自由软件:研究它的源代码(自由#1)和改进它(自由#3)。
今天它很容易发布(例如在github)你的改进版本和分享它(自由#2)。
确保拥有该file
程序的最新版本。许多发行版没有使用它(也许您的发行版中的错误已经在上游得到修复)。
我不确定你的--correct_extension
行为属于file
(这是一个程序询问,而不是更改您的数据)。但如果确实如此,它可能应该拼写为--correct-extension
或 --rename-extension
...一旦您尝试实现它,您可能会发现存在奇怪的极端情况(gzipped tar 文件,或压缩的 C 源文件,或可能的东西)需要多个文件扩展名)。
请注意(与 Windows 不同)在 Linux 和 Unix 上,文件实际上是一个索引节点(看索引节点(7)) 和可以有多个名称(或没有),并且可以是打开同时通过多个进程(阅读文件描述符) - 或无,即使大多数文件只有一个名称(但请参阅链接(2)&统计数据(2))。自从相同的文件可以命名foo.txt
,bar.gz
重视文件扩展名没有多大意义。也可以看看路径分辨率(7)。
因此,如果您尝试实现您的correct-extension
想法,您会发现实现(甚至指定)并不那么简单,并且没有明显的简单行为。
可能你的想法不太好,不容易实现在 Linux 和 POSIX 系统上(至少不是所有情况)。
因此,我建议甚至避免提交功能请求(在其初始形式中,这对您和 的开发人员来说都是时间损失file
)。或者,做很多工作,改进它的规范,并提交补丁......当然你会花很多工作在这上面(我真的不认为这是值得的痛苦)。
也许还读过一些 Unix 编程书籍(比如旧的碱性磷酸酶,或更新的东西;并且简介(2)&系统调用(2)) 和操作系统:三个简单的部分。
答案3
你问:
请求 GNU Linux 中的功能的正确方法是什么?
要回答这个问题,重要的是要知道“GNU Linux”本身并不存在。 GNU 项目是开发自由软件的协作努力。其中一些免费软件 - 以及大量其他免费和开源软件 - 收集者其他项目:要么是像 Fedora* 或 Debian 这样的协作、开放项目,要么是不同程度开放的企业努力,甚至是个人。这些集合被称为“Linux 发行版”或“GNU/Linux 发行版”(其中存在一场政治辩论,我不会介入)。
一般来说,如果您有兴趣特征增强功能,最好的办法是与编写该软件的开发人员合作 - 发行版需要做很多工作才能收集各种软件并使其协同工作,并且通常会更喜欢这些变化发生在“上游”。
所以,你在这里做了正确的事情 - 你找到了记录的上游源并尝试在那里报告。
然而,您感兴趣的软件的记录通信方法似乎不起作用。在这种情况下,您有多种选择:
- 尝试寻找其他方式联系软件开发人员。在这种情况下,大多数发行版都包含
file
最初由 Ian Darwin 编写的命令,名义上位于http://www.darwinsys.com/file/,以及您提到的邮件列表。但与那些邮件列表一样,主站点似乎已关闭。在当今时代,检查 GitHub 是很好的第二步,我发现https://github.com/file/file- 其中说 文件 CVS 存储库的只读镜像,每半小时更新一次。注意:不要在此处提出拉取请求,也不要评论任何提交,请以常规方式将它们提交到错误跟踪器或邮件列表。这不会立即有帮助,但我注意到有过去一周对该回购协议进行了更改。因此,下一步可能采取的行动是查看谁进行了这些提交并联系他们。 - 您可以询问负责您使用的发行版中的软件包的人员。对于
file
Fedora 而言,请参阅这一页。由于他们定期使用该软件,因此他们可能有其他方式联系上游。根据发行版的不同,最好通过提交错误或直接联系来完成 - 您需要了解个人文化。 (在 Fedora 中,我建议开发邮件列表.) - 如果您使用的是商业发行版,例如 Red Hat Enterprise Linux*,您可以提交支持票证。作为付费客户,您也许能够影响您的供应商找到解决方案。
- 如果一切都失败了,您感兴趣的项目可能是死上游。在这种情况下,您可以“分叉”该项目 - 创建您自己的版本,并围绕它构建一个新的上游社区。如果您的版本得到维护,而另一个版本已失效,那么发行版很可能会随之而来。
* 我在 Fedora 上工作。我受雇于红帽。
答案4
identify -format %m file.gif[0]
%m 图像文件格式(文件魔法)
[0] 表示第一帧,如果您不小心在视频上使用它,这可能会有所帮助,否则它会使用 ffmpeg 库来制作每个帧的临时副本。
这仅适用于图像。我不知道如何对通用文件执行此操作。ffmpeg 为随机 mp4 文件返回“avc1”(其他 mp4 文件可能返回不同的字符串,您仍然需要解析它),并且我没有找到从该文件到“mp4”的方法。 “avc1”不在 /usr/share/mime 中的任何位置。
ffmpeg(或等效的 ffprobe)列出了解复用器在其输出开始时使用的一些文件格式。对于 mp4 文件,它说
输入 #0, mov,mp4,m4a,3gp,3g2,mj2, 来自 . 。 。
[。 。 .]
视频:h264(主)(avc1 / 0x31637661)
对于 png 它说
输入 #0, png_pipe, 来自 . 。 。
[。 。 .]
视频:png、rgb24(pc)