【发布时间】:2017-08-22 05:57:45
【问题描述】:
我在一个目录中有以下文件。
file001
file002
.
.
file009
我需要将它们压缩为一个并删除原始/源文件 (file001 .. file009),以便释放一些磁盘空间。
这就是我所做的: 使用以下命令将所有文件归档为一个
tar -cvf file00.tar file00*
然后使用以下命令压缩归档文件
xz file00.tar
以前我使用单个命令存档和压缩
tar -cJvf file00.tar.xz file00*
xz 做得很好,将 10GB 的文件压缩到不到 400MB,但我对这些方法有几个问题:
- 不删除旧/源文件
- xz 需要大量时间
我的问题是,有什么方法可以使用单个命令将多个文件压缩成一个文件,同时删除源文件? 有没有其他压缩工具可以像 xz 一样高效但可以工作更快?
我在其他一些网站上看到我可以使用多个内核/线程来提升 xz 进程,但我自己没有尝试过。
提前致谢。
【问题讨论】:
-
你可以试试
pixz,它是xz工具的并行变体(还有pxzxz的并行变体):tar -Ipixz -cf foo.tpxz foo/(有-I compressortar的选项可供选择非标准压缩机)。 -
你可以试试 zstdmt。对于高压缩的 4 个核心,它会给出类似的结果:
tar -cvf - file00* | zstdmt -19 -T4 > file00.tar.zst
标签: linux compression archive bzip2 xz