asc*_*bol 27 tar options portability
我已经学会了使用不带“-”的 tar 作为选项,例如,tar cvfz dir.tar.gz Directory/
但我最近遇到了略有不同的tar -czvf
语法(我认为在这种情况下,“f”必须是最后一个选项)。
两者都适用于 linux 和 Mac OS。是否有推荐的语法,没有 '-' 的 ou 更易于移植到 unix 风格?
Gil*_*il' 29
tar
是选项语法尚未标准化的时代的古老命令之一。因为所有有用的调用都tar
需要在提供任何文件名之前指定一个操作,所以大多数tar
实现将它们的第一个参数解释为一个选项,即使它不以-
. 大多数当前的实现都接受一个-
; 我知道的唯一例外是Minix。
旧版本的 POSIX 和 Single Unix 包含一个在操作说明符之前tar
没有的命令-
。Single Unix v2 同时具有传统的归档器cpio
和tar
,但很少有标志可以标准化,因为现有的实现差异太大,因此标准引入了一个新命令,pax
,这是自Single Unix v3以来唯一的标准归档器。如果你要符合标准,使用pax
,但请注意,许多Linux发行版不包括在他们的基础设施,而且也没有pax
在Minix的。如果您希望在实践中具有可移植性,请使用tar cf filename.tar
.
Bru*_*ger 13
我可能是个恐龙,但我认为习惯性使用cvf
而不是-cvf
可能更便携。我想大多数 Linux 发行版都使用 GNU tar,我猜 *BSD 也使用 GNU tar,但是您会发现专有 Unix 仍然使用旧的 SysV tar,这曾经要求您不要-
在选项中使用 a 。
我不使用-cvf
(或-xf
其他),即使使用最前沿的 Arch linux 我也没有问题。
作为旁注,我认为您可以使用jar
带有或不带有 a的 Sun 标准命令选项-
。