命令文件建议背后的故事是什么?


12

在阅读时,file(1)我在手册页中注意到了这一点(强调我的意思):

将本地定义添加到/ etc / magic时,请确保保留这些关键字。用户依赖于知道目录中的所有可读文件都印有“文本”一词。不要像伯克利那样做,而是将“ shell命令文本”更改为“ shell脚本”。

这句话的背后是什么故事?我猜Berkeley是指,BSD (Berkeley software distribution)但Google没有提供足够的信息。

链接到file(1) http://man7.org/linux/man-pages/man1/file.1.html

一些挖掘表明,此声明是27年前添加的链接

Don't do as one computer vendor did \- change ``shell commands text''
to ``shell script''.

后来更改为当前语句链接

Don't do as Berkeley did \- change ``shell commands text''

Answers:


6

人们一直在编写脚本(可能还有C程序)以file在文件上运行,使用$(file foobar)或捕获输出popen(),并进行字符串匹配检查以查看输出是否file包含(或以)单词“ text”开头。然后,伯克利软件发行商(位于加利福尼亚大学伯克利分校)的开发人员按照说明进行操作,并导致所有这些脚本和程序 无法将Shell脚本文件识别为文本文件。


这是什么时候发生的?有参考吗?
yegle 2014年

它可能是在1970年代后期(非常晚)或1980年代初期。我找不到参考;我正在传达我的记忆。
斯科特(Scott)

not to recognize shell script files as text files。shell脚本可以包含二进制数据:)请参阅:无法检测到带有嵌入式二进制数据的shell脚本越野车魔术:#!/ bin / sh带有嵌入式二进制数据的报告为'data'修复
Evgeny Vereshchagin

@EvgenyVereshchagin:好的,这与该主题相关,但不多。还是在说点?
斯科特,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.