根据 BSD 手册页,tar 首次出现在 1979 年的 UNIX 版本 7 中,而 shar 首次出现在 1994 年发布的 4.4BSD 中。
当时认为可以分享的优势是什么? Shar 引入了许多安全问题,因为它只是执行一个冗长的 shell 脚本。既然 tar 已经提供了类似的功能,为什么还要引入这个工具呢?
答案1
根据来源(以及您可能附加的权重),shar
可以追溯到 1980 年左右。以您可能认识的形式,它来自 Rich Salz 在 1988 年引入的实现,并在接下来的几年中分阶段改进。
shar
最初是为了方便捆绑文本文件。 uuencoding(一种发送二进制文件的方式)已经存在了至少同样长的时间:我在 1989 年的 2.0BSD 中看到它,手册页说它是由 Mark Horton 编写的。它在 20 世纪 80 年代就被使用过shar
,但最早与 with 结合使用的情况shar
却难以捉摸。README
Rich Salz 1988 年的版本指出cshar
:
On a philosophical note, I've tried to make this all as general as
possible for shipping sources around. I'm not interested in binaries, so
things like automatically running uuencode don't interest me a great
deal. I haven't come up with a good portable way to split files into
pieces if they're too large, and doubt I ever will. There are too many
installation parameters, but I'm not particularly worried about that: Once
you get things working, consider it incentive to avoid future changes.
It would be nice if I could use Larry's meta-Config, but that only works
on Unix (and Eunice). Send me your config.h file so that others can benefit.
shar2
然而,威廉·戴维森 (William Davidsen) 的并发(一个月前)comp.sources.misc(第3卷第14期)支持uuencode。
进一步阅读:
- Shar/Utils 的评论
- 对 Internet 消息的标头字段进行编码(RFC-1154,1990)
- [mailhist-discuss] 电子邮件历史记录片段提到 Mark Horton 的 uuencode/uudecode
- v02i020:安全 uuencode 和 uudecode(1987 年 9 月 8 日,提到 uudecode 和 shar)
- 互联网电子邮件技术发展提供了有关 uuencode/uudecode 的更多信息,但没有提及 shar。据称霍顿于 1979 年编写了这些程序。
答案2
你错了,shell 存档器不晚于 1980 年就已经存在了。
它们是为 usenet 源档案编写的,以便让档案出现在邮件中。 Tar 是二进制的,不能轻易地存在于 usenet 源档案中。