Articles of tar

如何在Linux / Unix下创build一个大于2GB的文件?

我有这样的家庭工作,我必须从一个源传输一个非常大的文件到多个机器使用bittorrent类别的algorithm。 最初我将文件分割成大块,然后把块传送到所有的目标。 目标有智能分享他们与其他目标的块。 它工作正常。 我想传输一个4GB的文件,所以我tarred四个1GB的文件。 当我创build4GB的tar文件时没有错误,但是在将所有的块组装回原始文件的时候,在错误输出文件大小限制超出的情况下, 我怎样才能解决这个2GB的限制问题?

recursion地列出tar / zip档案的内容

我知道如何获得zip / tar文件的内容,例如: http : //www.if-not-true-then-false.com/2010/list-tar-tar-gz-tar-bz2-contents/ 但在我的情况:我想获得一个zip档案的所有内容。 ABCD.zip –>somefile.txt –>somezip.zip –>someother.tar 目标:我想要得到ABCD.zip的内容,以便我还能得到somezip.zip和someother.tar的更多内容,someother.tar也可能有其他一些拉链等。我怎样才能做到这一点与recursion? 可能用bash / perl脚本?

将pipe道焦油提取成焦油创build

我现在有一个tar.gz,我想从中提取一个或两个文件,并将它们打包/添加到一个新的tar.gz中。 当然,我可以保存到一个临时文件并使用它,但是ABSOLUTE的要求是不需要任何中间文件输出即pipe道。 换句话说,我想要的是像下面的伪代码(显然语法是不正确的) tar -xvf first.tar.gz subdir1/file1 subdir2/file2 | tar cf – | gzip > second.tar.gz 有谁知道这个适当的语法? 我已经尝试了很多变种,但无济于事。 我也很喜欢使用cpio的想法,但是又一次,我被如何正确地获得语法所困扰,并且从我的理解中,cpio只会使用档案或文件名,而不是文件。 任何帮助将不胜感激。 编辑:在压缩包内没有特定的文件名模式来提取。 鉴于BSD和GNU tar一次只能search一个模式,我不确定是否甚至可以分别使用include / exclude标志。

我怎样才能有效地将许多文件移动到新的服务器?

我正在切换托pipe提供商,并需要将数百万上传的文件传输到新的服务器。 所有的文件都在同一个目录下。 是。 你阅读正确。 ;) 在过去,我已经这样做了: 从源服务器上压缩所有的文件 将邮政编码到新的服务器 拉开拉链 将目录移动到适当的位置 无论出于何种原因,我从第1步开始的拉链总是带着他们的path,并要求我mv。 我最后一次完成这个工作大约需要4-5天才能完成,大约是现在的60%。 我希望有一个更好的方法。 你有什么build议? 文件结构被哈希。 像这样的东西: AAAAAAAAAA.jpg – ZZZZZZZZZZ.txt 这里有一个想法,我们正在折腾: 根据3个字母的前缀将拉链分成多个微型拉链。 就像是: AAAAAAAAAA.jpg – AAAZZZZZZZ.gif => AAA.zip 理论优点: 可以加快传输,允许多个拉链一次传输 可以限制传输失败所浪费的时间。 (等待2天的转账最终失败是可怕的) 理论缺点: 可能会使初始zip变慢,因为zip必须通过通配符( AAA* )查找文件,或许可以通过使用所有CPU而不是一个CPU来同时运行多个zip线程来抵消。 复杂? 我们也考虑过rsync和scp,但是担心手动传输每个文件的费用。 而由于远程服务器是空的,我不需要担心已经有什么。 你怎么看? 你会怎么做? (是的,我最终会把它们转移到Amazon S3上,我只是把它们放在一个磁盘上,但同时我昨天也需要它们)

归档(Ubuntu的焦油)隐藏的目录

目录mydir上的tar将归档隐藏的文件和隐藏的子目录,但是具有*通配符的mydir tar不会。 这是一个长期的和已知的不一致或错误? 编辑(附加信息):使用通配符的mydir tar将不会“查看”或将隐藏文件和隐藏的子目录归档到直接目录中。 但是,在mydir隐藏文件和隐藏子目录的非隐藏子目录中将被存档。

用一个命令打开一个.tar.gz文件

当我下载一个.tar.gz文件时,我用两个命令打开它,先用gunzip然后tar 。 是否可以用一个命令打开它?

如何用shell脚本解压所有的.tar.gz文件?

我试过这个: DIR=/path/tar/*.gz if [ "$(ls -A $DIR 2> /dev/null)" == "" ]; then echo "not gz" else tar -zxvf /path/tar/*.gz -C /path/tar fi 如果该文件夹有一个焦油,它的作品。 如果该文件夹有很多焦油,我得到一个错误。 我怎样才能做到这一点? 我有一个想法来运行一个循环来解压,但我不知道如何解决这个问题

我该如何解开unix中的tar.bz文件?

我发现了大量的页面,说明如何解开tar.bz2文件,但是如何解开一个tar.bz文件呢?

如何比较两个tarball的内容

我想告诉两个tarball文件是否包含文件名和文件内容相同的文件,不包括date,用户,组等元数据。 但是有一些限制:第一,我无法控制制作tar文件时是否包含元数据,实际上tar文件中总是包含元数据,所以直接比较两个tar文件是行不通的。 其次,由于一些tar文件太大,我不能把它们解压到一个临时目录中,并逐个比较所包含的文件。 (我知道如果我可以将file1.tar解压到file1 /中,我可以通过在文件/中调用'tar -dvf file2.tar'来比较它们,但是我通常无法承受其中的一个) 任何想法如何我可以比较两个tar文件? 如果能在SHELL脚本中完成,会更好。 另外,有没有办法获得每个子文件的校验和,而实际上没有解压缩一个tarball? 谢谢,

为什么同一个文件的两个tarball的md5哈希值不同?

我可以跑: echo "asdf" > testfile tar czf a.tar.gz testfile tar czf b.tar.gz testfile md5sum *.tar.gz 事实certificate, a.tar.gz和b.tar.gz有不同的md5散列。 这是真的,他们是不同的,这diff -u a.tar.gz b.tar.gz证实。 我需要传入哪些额外的标志以使其输出在相同input的情况下随时间变化一致?