Questions tagged «tar»

tar存档格式和/或用于处理tar文件的命令行实用程序。

2
动态构建命令
我正在编写脚本,因此需要tar动态生成命令。 这是两个示例,以说明我要执行的操作: #!/bin/bash TAR_ME="/tmp" EXCLUDE=("/tmp/hello hello" "/tmp/systemd*" "/tmp/Temp*") _tar="tar "`printf -- '--exclude="%s" ' "${EXCLUDE[@]}"`" -zcf tmp.tar.gz" echo COMMAND: "${_tar}" ${_tar} "$TAR_ME" echo -e "\n\nNEXT:\n\n" EXCLUDE=("--exclude=/tmp/hello\ hello" "--exclude=/tmp/systemd*" "--exclude=/tmp/Temp*") _tar="tar "`printf -- '%s ' "${EXCLUDE[@]}"`" -zcf test.tar.gz" echo COMMAND: "${_tar}" ${_tar} "$TAR_ME" 我希望能够_tar用作命令,已经能够使其与经典路径一起使用,但是我需要它与文件夹名称中的空格一起使用。而且每一次我都会看到类似以下的错误: COMMAND: tar --exclude="/tmp/hello hello" --exclude="/tmp/systemd*" --exclude="/tmp/Temp*" -zcf tmp.tar.gz …

3
压缩文件可以改善压缩率吗?
可以将一堆文件一起使用标准工具(例如gzip,bzip2,xz)改善压缩率吗? 我一直以为是这种情况,但从未对其进行过测试。如果我们将同一个20Mb文件的2个副本的随机字节放在一起,那么一个聪明的压缩程序将实现将整个tarball压缩到将近20Mb。 我刚刚尝试使用gzip,bzip2和xz压缩此实验,以压缩1)一个随机字节的文件,2)包含该文件两个副本的tarball,以及3)包含该文件两个副本的cat。在所有情况下,压缩都不会减小文件大小。对于情况1,这是预期的,但对于情况2和3,最佳结果是可以将40Mb的文件压缩到接近20Mb。对于压缩程序来说,这是很难理解的,特别是因为冗余是遥不可及的,所以我不希望有完美的结果,但我仍然认为会有一些压缩。 测试: dd if=/dev/urandom of=random1.txt bs=1M count=20 cp random1.txt random2.txt cat random1.txt random2.txt > random_cat.txt tar -cf randoms.tar random1.txt random2.txt gzip -k random* & bzip2 -k random* & xz -k random* & wait du -sh random* 结果: 20+0 records in 20+0 records out 20971520 bytes (21 MB) copied, …

2
如何使用tar,gzip,rsync加快对稀疏文件的操作?
我的文件稀疏。(du -h报告3G,du -h --apparent-size报告100G。)到目前为止,还不错。 现在,当我要使用压缩文件tar或使用进行网络传输时rsync,将需要3G的时间。这些工具似乎读取了所有零。 我以为以某种方式标记了漏洞,而这些工具可能以某种方式跳过了它们? 我的文件可能没有问题? 这是在缺少功能tar和rsync不看稀疏文件?我使用了tar参数--sparse,但是并没有加快速度。rsync参数也没有--sparse。 有什么方法可以在稀疏文件上加快这些工具的速度吗?

1
在什么情况下,gunzip和tar xf可以工作,但是tar xzf失败?
为了说明这一点:我已经从公司的网站下载了LEDA库。在其上使用tar -xzf失败: $ tar -xzf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz tar: This does not look like a tar archive tar: Skipping to next header tar: Exiting with failure status due to previous errors 但是,先执行gunzip,再执行tar -xf即可: $ gunzip LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz $ tar -xf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar # no error 谁能告诉我为什么会这样吗?-我希望标准tar命令一直运行。
9 tar  gzip 

2
我要tar X目录不包括其父目录
tar cvf /var/lib/backup/sample.tar /home/user/.project 但是,当我提取时,我也会得到它的父母 /backup/ - /home/ - /user/ - .project/ 该tar命令之所以能够成功,是因为它的父项中不包含其他任何内容(user例如其他文件夹)。 我想以编程方式执行此操作,因此将当前工作目录更改/home/user/为不是真正的选择。有可能这样做吗?
9 directory  tar 




2
通过“ xargs”将变量从“ ls”传递到“ tar”
我正在尝试做类似的事情 ls -t | head -n 3 | xargs -I {} tar -cf t.tar {} 来归档最后3个修改过的文件,但最终每个文件分别运行tar命令,最后我剩下一个tar文件,其中包含3个文件中的最后一个(按它们的顺序)。我知道我没有正确使用'xargs',但是搜索没有帮助;我发现也不起作用的示例。甚至更简单的命令 ls | xargs -I {} tar -cf t.tar {} 最后以一个tar文件结尾,该文件仅包含该目录中的一个文件。
9 linux  ls  tar  xargs 



2
将文件添加到tbz文件
我正在寻找一种更新数千个.tbz存档文件的方法,因此我将使用Shell脚本进行此操作。我需要向每个文件添加一个文件。 我的问题是,有没有一种更快的方法,而无需提取每个tbz的内容,然后使用包含的tar中包含的新文件进行重新压缩?这些命令是什么样的? 谢谢

4
如何调试:tar:孤独的零块
如何调试呢?最近几天,这个问题突然出现了。网站的所有备份均已损坏。 如果备份仅保留为tar,则没有问题,但是tar被压缩为原样,gz否则xz我无法解压缩它们。 有很多可用磁盘 Local disk space 2.68 TB total / 2.26 TB free / 432.46 GB used 错误 tar: Skipping to next header[===============================> ] 39% ETA 0:01:14 tar: A lone zero block at 2291466===============================> ] 44% ETA 0:01:13 tar: Exiting with failure status due to previous errors 878MiB 0:00:58 [15.1MiB/s] …


3
从根目录使用tar.gz打包文件
我尝试在根目录中将.csv文件与tar.gz打包在一起。 该文件myfile.csv位于,/mnt/sdb1/ 因此完整文件名为/mnt/sdb1/myfile.csv 我尝试将tar.gz保存在 /mnt/sdb1/old_files 我这样尝试过: tar -czf /mnt/sdb1/old_files/new.tar.gz mnt/sdb1/myfile.csv 但是,当我提取文件时,将提取一个名为“ mnt”的文件夹,其中包含另一个名为“ sdb1”的文件夹,其中包含该文件。 是否可以仅压缩文件,而不复制所有目录?
8 tar  gzip 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.