如何使用多线程创建和提取 tar.xz

ewr*_*243 6 tar zip compression multithreading

我用

tar -cJvf resultfile.tar.xz  files_to_compress

创造tar.xz

tar -xzvf 结果文件.tar.xz

在当前目录中提取存档。如何在两种情况下使用多线程?我不想安装任何实用程序。

小智 28

您可以使用XZ_DEFAULTSXZ_OPT环境变量:

建议将XZ_DEFAULTS用作系统范围的配置,通常在 shell 初始化脚本中设置。

XZ_OPT用于在xz脚本或工具(例如 GNU )运行时传递选项tar。看man xz

示例:使用多线程 ( -T0) 和最大压缩级别 ( -9):

XZ_OPT='-T0 -9' tar -cJf resultfile.tar.xz files_to_compress

参考bash 或派生 shell 上最新的 GNU tar,另请参阅xz 手册页


Art*_*nov 11

tar -c -I 'xz -9 -T0' -f archive.tar.xz [list of files and folders]
Run Code Online (Sandbox Code Playgroud)

这会将文件和目录列表压缩到.tar.xz存档中。它通过指定要传递给xz子进程的参数来实现,子进程压缩 tar 存档。

这是使用-Itar的参数完成的,它告诉tar使用什么程序来压缩 tar 存档,以及传递给它的参数。该-9通知xz用最大压缩。该-T0告诉xz尽可能多的线程,你有CPU的使用。

  • 这会在此处返回 `tar: Couldn't open xz -9 -T0: No such file or directory` (macOS)。来自另一个答案的以下内容有效:`tar -cf - 文件和文件夹列表| xz -9 -T0 >| 存档.tar.T.xz` (2认同)