Answers:
尽管如由Zacharee1详细介绍,并通过heemayl通常是你想做的事,另一种方式是管道柏油数据的命令:tar cJf archive files...
xz
tar c files... | xz > archive.tar.xz
由于Ubuntu tar
支持该J
选项,因此当您希望将选项传递给时,这种替代方法特别有用xz
。
在此示例中,我压缩并压缩了一些TIFF文件,这些TIFF文件具有较高的压缩率(-9
to xz
)和详细输出(v
to tar
,-v
to xz
):
ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
100 % 207.3 KiB / 290.0 KiB = 0.715
当然,这也可以通过两个明确分开的步骤来完成:
ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
100 % 207.3 KiB / 290.0 KiB = 0.715
尽管最后.tar.xz
生成的文件应该是相同的(并且在我测试时是相同的),但这两种方式实际上在操作方式上并不等效。
tar
就是管道(|
)到输入的xz
。几乎立即xz
接收到数据tar
,并且从未创建任何中间未压缩的tar文件。这是说,第一种方式是本质上等同于tar cJf archive files...
,除了传递给其他参数xz
。xz
在第二个命令中对其进行了压缩。(完成后会xz
自动删除原始文件,除非使用-k
/ 调用--keep
。)有关更多阅读,请参阅Rafael van Horn的这篇文章以及tar
and xz
手册。
tar -J
是指定环境变量XZ_OPT
,使调用类似:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
tar
与-J
选项一起使用:
tar -cvJf images.tar.xz /directory/containing/images/*
tar
用于将多个文件合并为一个文件(存档),然后我们需要使用XZ压缩算法压缩档案。
来自man tar
:
-c, --create
create a new archive
-v, --verbose
verbosely list files processed
-J, --xz
-f, --file ARCHIVE
use archive file or device ARCHIVE
还要注意images.tar.xz
,如果要保存到其他目录,将在当前目录中创建该目录/full/path/to/images.tar.xz
。
xz
是其中最慢的xz
,gzip
,bzip2
起因于others..the缓慢的更高的压缩比是值得对付,如果你想要更多的压缩..
使用此命令:tar cJf <archive.tar.xz> <files>
。用空格分隔文件路径。
-cfJ
-
在前面..from man tar
:A function letter need not be prefixed with ``-''
..so tar cJf
绝对可以。
tar cJf
,将给予OP做这个作为我的答案已经覆盖的另一种方式tar --cvJf
,在第一..