Articles of tar

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

我正在切换托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的情况下随时间变化一致?

如何在TAR归档时去除path

我有一个文件,其中包含我想用tar存档的文件列表。 我们称之为mylist.txt 它包含: /path1/path2/file1.txt /path1/path2/file3.txt … /path1/path2/file10.txt 我想要做的是将这个文件存档到一个tarball,但不包括/path1/path2/ 。 目前通过这样做: tar -cvf allfiles.tar -T mylist.txt 在取消存档后保留path。 我试过但不会工作: tar -cvf -C /path1/path2 allfiles.tar -T mylist.txt 它将/path1/path2所有文件归档,即使那些不在mylist.txt中的文件也归档 有没有办法做到这一点?

在c中使用libtar库

我正在尝试使用c做一个tar文件。 有一个原因,我不能使用 system("tar -cvf xxxx.tar xxxx"); 我的代码是: #include <stdio.h> #include <libtar.h> #include <fcntl.h> int main(void) { TAR *pTar; char *tarFilename = "file.tar"; char *srcDir = "directory"; char *extractTo = "."; tar_open(&pTar, tarFilename, NULL, O_WRONLY | O_CREAT, 0644, TAR_GNU); tar_append_tree(pTar, srcDir, extractTo); tar_close(pTar); return (0); } 运行这个代码后,当我想解压 tar -xvf file.tar 我收到一个错误 tar: This does not look […]

如何在没有填充磁盘空间的情况下在tar归档文件中的grep模式

我有一个很大的〜5GB的tar档案。 我想在所有文件上grep一个模式(也打印有模式的文件的名字),但是不想通过提取压缩文件来填满我的磁盘空间。 无论如何,我可以做到这一点? 我试过这些,但是这不会给我包含模式的文件名,只是匹配的行: tar -O -xf test.tar.gz | grep 'this' tar -xf test.tar.gz –to-command='grep awesome' tar的这个特性还logging在哪里? tar xf test.tar $ FILE