两个 tar 命令 -cf 和 -Jchf 之间的区别

两个 tar 命令 -cf 和 -Jchf 之间的区别

我有一个在两个地方运行的 python 脚本,两个不同但相似的命令:

os.system("tar cf - -C %s . 2>/dev/null 3>/dev/null | 7za a -p%s -si %s 1>/dev/null 2>/dev/null 3>/dev/null" % (cf, self.config.get(jn, "archpass"), filename))


os.system("tar -Jchf - -C %s . 2>/dev/null 3>/dev/null | 7za a -p%s -si %s 1>/dev/null 2>/dev/null 3>/dev/null" % (cf, self.config.get(jn, "archpass"), filename))

此脚本用于备份 Ubuntu 服务器上的 websited。因此大多数文件都是 html/php/js/jpg。我需要更多地了解此命令,以便知道是否有需要改进的地方。

问题1)tar cf和之间有什么区别tar -Jchf?不幸的是tar --help并没有帮助我理解附加-Jf参数。

问题2)tar也归档吗?将所有内容发送至 的目的是什么7za?是否进行双重归档?

答案1

命令中的实际区别在于开关Jh,如下所述(来自man tar):

-h, --dereference
              Follow symlinks; archive and dump the files they point to.
-J, --xz
              Filter the archive through xz(1).

因此,您强制使用符号链接来压缩存档xz并遵循符号链接,而不是存档链接本身。

相关内容