Answers:
阅读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
尤其是在unix / linux系统上,直接用7z压缩不是一个好主意:7z 不会保留权限和/或用户/组信息。因此:首先压缩,然后压缩。
如http://en.wikipedia.org/wiki/7z#Limitations上的7zip Wiki页面所报道:
局限性
7z格式不存储文件系统权限(例如UNIX所有者/组权限或NTFS ACL),因此可能不适用于备份/存档目的。在类似UNIX的系统上,一种解决方法是在使用7z压缩之前将数据转换为tar比特流。
我建议您使用:
tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z
大大提高了速度。
它具有使用lzma2(-m0=lzma2
)(利用系统上可用的最大内核数和“快速压缩”预设(-mx=3
)的优点)的优势,该功能基本上足够快且足够好。请注意,LZMA2不仅在压缩方面利用了所有内核,而且在压缩方面减压。
man 7z
。