如何从命令行创建tar.7z文件?


21

我想从去年开始整理作业。如何从命令行Ubuntu(我没有GUI)压缩并压缩整个文件夹。

Answers:


25

使用以下单线:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z

潜在来源:man 7z
2014年

9

阅读man tar。它提供:

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

或者,如果这些都不适合您,并且您的压缩程序显示为stdin,则可以:

tar cf- $HOME | my_compression_program >/tmp/compressed.output

请注意,我将输出写在其他地方$HOME(将其备份到要备份的目录中会导致文件增长不受限制)。

或者,您可以阅读man 7z-看起来可以做到

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 

7

尤其是在unix / linux系统上,直接用7z压缩不是一个好主意:7z 不会保留权限和/或用户/组信息。因此:首先压缩,然后压缩。

http://en.wikipedia.org/wiki/7z#Limitations上的7zip Wiki页面所报道:

局限性

7z格式不存储文件系统权限(例如UNIX所有者/组权限或NTFS ACL),因此可能不适用于备份/存档目的。在类似UNIX的系统上,一种解决方法是在使用7z压缩之前将数据转换为tar比特流。


5

我建议您使用:

tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z

大大提高了速度。

它具有使用lzma2(-m0=lzma2)(利用系统上可用的最大内核数和“快速压缩”预设(-mx=3)的优点)的优势,该功能基本上足够快且足够好。请注意,LZMA2不仅在压缩方面利用了所有内核,而且在压缩方面减压。


1
最后,有了您的回答,我找到了我想要的东西:能够在任务中使用所有处理器。
朗尼(Bonnie)最佳

0

你应该用 tar -Jchf <Filename>.tar.xz <Files to compress>

-J使用XZ压缩算法,相同7zip的

-c创建一个新文件, -h保留simlinks -f设置文件名

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.