如果 tar 已经存在了,为什么还要写 Shar 呢?

如果 tar 已经存在了,为什么还要写 Shar 呢?

根据 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却难以捉摸。READMERich 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。

进一步阅读:

答案2

你错了,shell 存档器不晚于 1980 年就已经存在了。

它们是为 usenet 源档案编写的,以便让档案出现在邮件中。 Tar 是二进制的,不能轻易地存在于 usenet 源档案中。

相关内容