TL;博士
如何解压缩文件.tgz,然后选择性地压缩输出?我提取的dir有几个文本文件和一个.nii文件。我想稍后再给你拉链。
详细信息
第一种方法是按顺序执行。不过,我正在处理存储在BeeGFS文件系统上的一个巨大数据集( BeeGFS tar存档),有人告诉我,最好分两步在内存中这样做,因为BeeGFS不喜欢处理这样的大目录。
顺序法:
for tarfile in ${rootdir}/*.tgz; do
tarpath="${tarfile%.tgz}"
tar zxvf ${tarfile} # (1) untar directory
gzip ${tarpath}/*.nii # (2) gzip the .nii file
done有没有一种将(1)和(2)结合起来的方法?或者,对于如何有效地完成这一过程,您还有其他的建议吗?
谢谢!
发布于 2021-06-30 21:53:48
您可以从归档文件中提取单个文件(如果您知道文件名),并让tar将其写入标准输出,而不是用-O将其写入文件,然后压缩该流并将其重定向到文件。有点像
tar xzOf "$tarfile" "$tarpath/foo.nii" | gzip -c > "$tarpath/foo.nii.gz"然后,您可以使用tar xzf "$tarfile" --exclude "*.nii"解压缩存档中的其他所有内容。
https://stackoverflow.com/questions/68201720
复制相似问题