並行焦油我真的龐大的文件夾,我想存檔gzip和其拆分:與分裂的大文件夾
#!/bin/bash
dir=$1
name=$2
size=32000m
tar -czf /dev/stdout ${dir} | split -a 5 -d -b $size - ${name}
是否有辦法與平行GNU加快呢? 謝謝。
並行焦油我真的龐大的文件夾,我想存檔gzip和其拆分:與分裂的大文件夾
#!/bin/bash
dir=$1
name=$2
size=32000m
tar -czf /dev/stdout ${dir} | split -a 5 -d -b $size - ${name}
是否有辦法與平行GNU加快呢? 謝謝。
似乎並行gzip壓縮的最佳工具是pigz。請參閱comparisons。
有了它,你可以有這樣的命令:
tar -c "${dir}" | pigz -c | split -a 5 -d -b "${size}" - "${name}"
憑藉其選項-p
你也可以指定要使用線程數(默認是在線的處理器的數量,或8如有不明)。有關更多信息,請參閱pigz --help
或man pigz
。
UPDATE
使用GNU平行,你可以做一些這樣的:
contents=("$dir"/*)
outdir=/somewhere
parallel tar -cvpzf "${outdir}/{}.tar.gz" "$dir/{}" ::: "${contents[@]##*/}"
如何將文件解壓縮回文件夾我指的是pigz選項 –
看起來下面的工作是: 'cat prefix *> name_of_tar.tar.gz' 然後你可以解開「 name_of_tar.tar.gz「 –
@Arash_D_B或者直接將其直接輸入tar:'cat prefix * | tar -xz' – konsolebox
I/O通常不是並行。 –
嘗試使用7-zip代替其選項「-mmt」。 – konsolebox
我使用的是Lustre並行filelsystem,IO不是問題。 – Arman