linux下快速打包/多线程压缩文件的方法

发布时间:2024-12-19 22:55

快速打包行李:用压缩袋打包衣物,体积缩小,携带更轻松。 #生活技巧# #居家生活技巧# #懒人生活技巧# #懒人窍门#

SimonLiu009 已于 2022-05-17 18:57:31 修改

于 2022-05-14 15:54:17 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

文章目录 打包大量文件2. 多线程压缩文件2.1 与tar配合使用2.2 更多用法

今日遇到一个问题,就是把一个远程主机生成的10万个图片文件(训练集)传到kaggle。所以第一个遇到的问题,就是将这10万个图片打包。

打包大量文件

首先如果直接打包文件(非文件夹),会提示zip: Argument list too long。所以需要参照这篇博文使用find配合zip打包,发现开始速度很快,但是过了12小时居然还没结束(可能是因为远程主机的IO资源受限了,通过top命令查看cpu和mem占用并不大)。
后来又折腾了find配合tar命令:

find 200x100-4chars/ |xargs -i tar -cvf 4chars2.tar {} 1

发现一个奇怪现象,当文件达到一定大小之后(应该是达到预计大小),控制台还在不断输出,但是目标文件大小突然变成0k-20k之间变化。
最后的解决方案是整个文件夹一起打包,1秒完成:

tar -cf 目标文件名 文件夹 #例如 tar -cf data.tar dataset 123

2. 多线程压缩文件

在这过程中,又发现了pigz这个支持多线程压缩的软件,所以一并将相关内容放这里。
安装:

sudo apt install pigz 1

2.1 与tar配合使用

# 打包压缩 tar --use-compress-program=pigz -cvpf XXX.tgz path/files # 解压 tar --use-compress-program=pigz -xvpf XXX.tgz 1234

2.2 更多用法

#用法: pigz [options] [files ...] #-0 to -9, -11 : 压缩级别 #-p n : 指定压缩核心数,默认8个 #-k :压缩后保留原文件 #压缩文件 pigz -6 -p 10 -k filename #压缩后生成 filename.gz文件 #压缩目录 tar cvf - /data/test | pigz -6 -p 10 -k > test.tar.gz #自动选择最大线程打包压缩 tar -cvf - 文件夹1 文件夹2 | pigz -p $(nproc) > dstname.tar #mac下使用: tar -cvf - folder1 folder2 | pigz -p $(sysctl -n hw.ncpu) > dstname.tar #解压文件 gzip -d filename.gz #或者 pigz -d filename.gz #解压目录 tar xvfz filename.tar.gz #或者 pigz -d filename.tar.gz #注:使用pigz解压后是一个tar

1234567891011121314151617181920212223242526272829

参考资料:

pigz快速压缩find 命令解决mv: invalid option – ‘E‘和Argument list too long问题Linux下如何快速打包大量文件

网址:linux下快速打包/多线程压缩文件的方法 https://www.yuejiaxmz.com/news/view/521599

相关内容

Linux下快速删除大量文件/文件夹方法
linux怎么快速删除大量文件,比rm快的方法来了
打包(快速整理行李的技巧)
Linux系统下的压测工具
让Linux系统飞速启动:优化启动时间的技巧与方法
Linux频繁存取文件,导致可用内存逐渐减少
7 个整理 Linux 文件和清理电脑的技巧
【linux】ubuntu空间清理的9个方法
怎么把图片改kb大学?图片压缩的3种在线处理方法
搬家快速收拾打包的方法

随便看看