没有标准版本的TAR计划。这可能会让一些人感到惊讶,他们要么认为它是可用的“到处”或者对相反的读取评论,假设它必须是标准。在POSIX(自2001年以来)中,相当于焦油是PAX程序。如在理由所指出的那样:
PAX实用程序对于ISO POSIX-2:1993标准是新的。它代表了历史焦油和CPIO公用事业倡导者之间的和平妥协。
便携式存档交换程序。当第一个POSIX 1003.2工作组的成员无法在TAR或CPIO上标准化时,他们发明了该计划。 (另见CPIO和TAR。)
GNU / Linux和Max OS X使用OpenBSD团队的几乎相同的Pax版本,基于Keith Muller的原始自由可用版本。
我在1986年初开始使用(和首选)CPIO,当时我写了sccs_tools。我的项目有大约20个磁带盒子存放项目的快照' s来源。 CPIO程序用于写作和阅读这些磁带。当我在1994年初开始使用Linux开发时,我继续使用CPIO。以下是我从1994年5月开始的备份脚本的片段:
关于CPIO的好处是它接受了标准输入中的路径名列表。可悲的是,CPIO在当时正在开发的系统上并不普遍,我开始依靠焦油。与CPIO不同,TAR需要在命令行上给出其路径名,将其使用标准输入/输出的使用限制为正在处理的实际数据。除了执行我的备份,我还在焦油文件中与其他人交换数据。使用tar的令人信服的原因是(与CPIO不同)如果我向他人提供TAR文件,他们可能会有一个程序来阅读它。
与CPIO不同,焦油有几种实现。其他人有表明差异(我不会总结那些在这里)。
通常tar只是一个“给定”,用于分发和接收一组文件。
Lynx Web浏览器在文件操作的菜单中使用Tar。当我第一次开始使用Lynx时,使用常量编译程序路径名(和选项)。我在阶段修改了这一点:最初,1997年(参见更改2.8),Tar只是我选择编写完整路径名的几个程序之一,以匹配先前的手工制作的Makefiles,并确保确保a运行特定程序,而不是仅为名为“Tar”的程序:
1997-04-02 *优化CF_PATH_PROG允许HAVEN' t给定程序的计算机,只使用程序名称和添加配置选项 - 可用于强制执行此行为。 - TD1997-03-23 *为程序的路径添加AutoConf测试,包括Sendmail VS MMDF - TD
在2002年,我通过在Lynx.Cfg中添加了可以覆盖编译的路径名来更轻松地配置已编译的路径名。
2004年初,我延长了焦油的支票,包括类似的计划(参考变更):
2004-01-28(2.8.5pre.4)*修改配置检查tar以测试多个常见变体,包括明星,修改makefile.in以使用配置的' tar'计划(FLWM的请求)-TD
最后一步解决了更常见的tar(或pax!)变体。以下是我写的配置检查:
dnl cf_tar_options版本:1更新时间:2004 / 01/26 20:58:41 DNL ------------- DNL这只是最常见的Tar选项列表,允许Variants DNL可以与" - "标准输入/输出选项。 AC_DEFUN([CF_TAR_OPTIONS],[案例IFELSE($ 1,TAR,1美元)IN * pax)tar_up_options =" -w" tar_down_options =" -R" tar_pipe_options ="" tar_file_options =" -f" ;; * star)tar_up_options =" -c -f" tar_down_options =" -x -u -f" tar_pipe_options =" - " tar_file_options ="" ;; * tar)#fixme:某些版本的tar需要,一些允许" - " tar_up_options =" -cf" tar_down_options =" -xf" tar_pipe_options =" - " tar_file_options ="" ;; eSac ac_subst(tar_up_options)ac_subst(tar_down_options)ac_subst(tar_file_options)ac_subst(tar_pipe_options)])dnl
对于“tar”的这些参数,可以将一些硬码命令行重建到由Lynx,例如(并简化)下载的UN-TAR文件中:
通过基于TAR程序名称上的可用选项,配置检查假设过多的选项语法。通过针对已知有用的选项测试程序,可以改进这一点。
检查并不关心从tar存档中提取的文件的所有权。 Lynx禁用Setuid操作,但可以由root用户运行。
无法计算配置脚本以作为root运行,无法测试TAR程序是否需要一些特殊选项来保存文件所有权。
SVR4 Tar在AIX上,HPUX,Solaris文档这些选项,具有一些变体。我从“o”选项中省略了一个不相关的段落,以便简洁起来:
当O用于读取时,它会导致提取的文件占据运行程序的用户的用户和组ID,而不是磁带上的用户。这是普通用户的默认值,可以通过使用P功能修饰符来覆盖系统保护允许的程度。
Warning: Can only detect less than 5000 characters
当然有趣的焦油变体是我可以在不同点处检查和比较他们的行为的变体。这相当于说我可以读取源代码。
我可以访问几个UNIX系统进行比较(AIX 5-7,HPUX 11,Solaris 8-11)。因为来源通常不可用,所以没有多大说。
illumos(OpenSolaris的后代)在其GitHub存储库中具有焦油源(和cpio源)。有趣的是,它开始担任4.3 BSD Tar:
/ * *版权所有(c)1988年,2010年,甲骨文和/或其附属公司。版权所有。 *版权所有2012 Milan Jurik。版权所有。 *版权所有2015 Joyent,Inc。* // *版权所有(c)1983,1984,1985,1986,1987,1988,1989 AT& T * // *版权所有* // *版权所有(c)1987,1988微软公司* // *保留所有权利* // * *本源代码的部分来自加利福尼亚大学皇家委员会的伯克利4.3 BSD *。 * /
对于它的价值,CPIO源也使用BSD代码并具有相似的版权:
/ * *版权所有(c)1988年,2010年,甲骨文和/或其附属公司。版权所有。 *版权所有2012 Milan Jurik。版权所有。 *版权所有(c)2012 Gary Mills * // *版权所有(C)1983,1984,1985,1986,1986,1987,1988,1989 AT& T * // *版权所有* // * * *本源代码的部分来自加利福尼亚大学皇帝的许可的Berkeley 4.3 BSD *。 * /
3BSD Tar比Ansitar更有趣,因为后者仅适用于磁带,而不是文件。此外,Ansitar使用不同的标题格式。
据报道,一些BSD源代码在& T源代码,但由于AT& T忽略了标记他们的来源。在阅读Tar及其手册页的BSD源时,直到1986年没有应用版权声明(对于4.3BSD源代码)和1990(用于手册页)。这不是AT& t:
/ * *版权所有(c)加利福尼亚大学的1980年。 * 版权所有。 Berkeley软件许可协议*指定重新分配的条款和条件。 * /
CSRG的连续版本明显相关(1980到1990)。 Keith Muller的新实施(Pax的一部分)在此之后(在4.4BSD-Lite中看到):
/ * - *版权所有(c)1992 Keith Muller。 *版权所有(c)1992,1993 *加州大学的居民。版权所有。 * *此代码来自于San Diego大学的* Keith Muller为Berkeley提供的软件。
在BSD消息来源之外,还有另一项TAR实施。您可以在Decus中找到副本和#34; Posixtar" (1987年7月9日):
/ * *公共域名tar(1)计划。 * *由John Gilmore撰写,Ihnp4!Hoptoad!GNU,8月25日起开始25. * * @(#)Tar.c 1.21 10/29/86公共领域 - GNU * /
这恰好是与John Gilmore发布到Mod.sources第7卷作为V07i088:公共域Tar计划(1986/12/10)的相同版本。它可能是由Stallman获取的版本作为GNU Tar的基础。
Comp.Unix.Wizards新闻组在1988年2月发布:这里的两美分(免责声明:我是太阳的emp#5,虽然我已经超过两年了)。 DED,HP,Apollo等与AT& T控制UNIX在&amp&amp and&amp时不是相干的威胁。在& t'因为它的无法销售计算机是传奇的。在与太阳,AT& t的更严格的合作关系实际上可以在计算机上拥有Makemoney,这将使抗议者成为一个主要的竞争对手而不是猫的主要竞争对手。
根据互联网:传记(Hilary W.Poole,Laura Lambert,Chris Woodford,Chrisos JP Modovitis Abc-Clio,2005):1985年,Gilmore留下了他的口袋,太阳工作站和大量股票控股公司。
1. .........- ..- .. John Gilmore:Re:I'编写一个公共领域-TAR- 2. 1985-09-14 Richard M. Stallman:I'编写一个公共领域-tar- 3. 1985-12-03 John Gilmore:Re:Tar 4. ...... - ..- .. David C. Anderson:Re:Tar 5. 1986-10-31 John Gilmore:Re:想要:为unix焦结胶带6. 1986-12-22 Richard M. Stallman提供了一个VMS程序:我得到了Tar 7. 1987-02-14 John Gilmore:Re:Tar 8. 1987-12-15 Brian Reid :(无) 9. 1988-02-03 Jay Fenlason:(无)
Schilling是指从Sun Users组获得的版本,作为Gilmore发表的第一个版本,也引领读者相信Gilmore为员工担任太阳的员工。例如:
社会背景是:自1982年以来,明星由我维护.Gtar于1986年底,GTAR从John Gilmore(Sun Employee)起到PD-Tar / Sug-Tar,并于1989年由Stallman拍摄。在20世纪90年代初,经常改变了在那段时间(1993年)我第一次报道了这个问题。 - SCILY 9月9日9:47
makefile | 107 +++ ==== porting | 45!自述| 59 +! == todo | 76 ++ - == buffer.c | 712 +++++++++++++++++ ------ ========================== ===== create.c | 526 + - ! ====================================== extract.c | 407 +++++++! ======================= list.c | 477 + !! ================================ port.c | 431 +++++++++++++++++++++++++++! ======== port.h | 19 = Sugtar / Diffarch.c | 319 ++++++++++++++++++++++++ sugtar / open3.h | 45 +++ tar.1 | 185 + - ============= tar.c | 450 + - ================================= tar.h | 176 ============= 15文件更改,1184插入(+),102删除( - ),240修改(!),2508不变的线条(=)
反映它,斯卡林有其他问题' s陈述。但除了我评论的人之外,没有独立的信息来源,可用于与席克宁' S帐户进行比较。对于每个信息来源的每个细节,它都不同。
Gilmore将PDTAR发布到Comp.Sources.Unix Volume12 V12I068:Public Domain Tar(1987/11/29)。两个帖子之间的差异之一是在GNU TAR 1.09中存在的野生实用程序。表明后一种帖子用于GNU焦油的发育。首先,与第7卷发布比较:
makefile | 157 +++++! === porting | 57 +!自述| 54 !! todo | 69 + - == buffer.c | 763 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++! ========================== create.c | 594 ++++++ - !!!!! ============================= extract.c | 454 ++++++++ !!!! ================ list.c | 507 +++ !!!! =========================== names.c | 118 ======= port.c | 541 +++++++++++++++++++++++++++ ========= port.h | 29 tar.1 | 215 +++ !!! ======= tar.5 | 217 ============== tar.c | 496 ++++ - ============================= tar.h | 180 ===========卷12 / diffarch.c | 323 ++++++++++++++++++++++ volume12 / msd_dir.c | 214 +++++++++++ volume12 / msd_dir.h | 36 ++卷12 / open3.h | 50 +++卷12 /野生公司| 132 +++++++ ++ 20文件已更改,2028插入(+),115删除( - ),428修改(!),2635不变的线条(=)
makefile | 157 +++! ===== porting | 57 !!自述| 59 !! = todo | 64! == buffer.c | 688 +++ !! ========================================= create.c | 599 +++++ - !!!!! ============================= diffarch.c | 324 ===================== extract.c | 451 +++ !!! ======================== list.c | 509 ++ !! ============================= names.c | 118 ======= OPEN3.H | 50 == PDTAR-VOLUME12 / MSD_DIR.C | 214 ++++++++++++++ pdtar-volume12 / msd_dir.h | 36 ++ PDTAR-Volume12 / WILDMAT.C | 132 ++++++++ port.c | 541 +++++++ ============================= port.h | 29 tar.1 | 215 ++! =========== tar.5 | 217 ============== tar.c | 492 +++! ============================= tar.h | 180 =========== 20文件更改,872插入(+),41删除( - ),343修改(!),3876不变的线条(=)
考虑到数字,似乎SUG版本是Midway of usenet 7卷和第12卷之间的Midway。
在这里,PAX主要是感兴趣的,因为它实现了由Tar的现代实施提供的USTAR(标准Tar格式)。
该计划本身是未能达成焦油或CPIO是否是标准化的结果,因此我们有一个计划。新闻组线程以John S. Quarterman'在1987年6月1日向Comp.Std.Unix的Posting Tar.Unix发布了Tar.Unix。
根据Glen Fowler的说法,Pax的第一个“公共实施”是由Mark H. Colburn写的。他将它发布到Comp.Sources.Unix为“使用
......