找回密码
 加入我们
搜索
      
楼主: xc11748

[软件] 16亿个二进制文件如何打包成一个文件?

[复制链接]
发表于 2023-7-17 16:02 | 显示全部楼层
说点无关的: 16 亿个数据是不是不太适合交给文件系统管理了, 就算成功传过去了读起来也很慢啊...
可以合并成 4M 的块, 然后自己维护索引

对应你需求的正解很早有人说了, 就是 tar
发表于 2023-7-17 16:10 | 显示全部楼层
这属于整个分区了,直接GHOST最可靠。
 楼主| 发表于 2023-7-17 16:16 来自手机 | 显示全部楼层
ltzyID 发表于 2023-7-17 16:01
楼主的需求应该是将这1.98T的诸多文件,拷贝到另一台linux服务器上使用,

一个一个文件的拷贝数量巨大的小 ...

这16亿个文件是数据产品,放linux服务器上做发布使用,因为要发给多个客户,还没来得及做数据库或对象存储来管理,临时采用压缩打包成一个文件的方式。之前采用零碎文件的方式拷贝到移动硬盘里,整整花了2天。
发表于 2023-7-17 16:19 | 显示全部楼层
直接转成虚拟磁盘?
 楼主| 发表于 2023-7-17 16:21 来自手机 | 显示全部楼层
xy. 发表于 2023-7-17 16:02
说点无关的: 16 亿个数据是不是不太适合交给文件系统管理了, 就算成功传过去了读起来也很慢啊...
可以合并 ...

这是下一步要做的事情。目前是需要拷贝到linux服务器上做发布使用,如果打包成4M大小分块,技术上可行,主要是缺少发布服务,需要现开发,时间上来不及。后期会选择数据库或对象存储的技术路线
发表于 2023-7-17 16:23 | 显示全部楼层
可以试试先打包一点,然后往压缩包里逐渐添加文件,手动是不现实了,找找API接口吧
发表于 2023-7-17 16:27 | 显示全部楼层
这么多小文件,最好分卷处理,开发来不及,写个脚本总有吧
发表于 2023-7-17 16:31 | 显示全部楼层
这个问题让统计出有16亿个文件的人搞就行,别老想着用图形界面
发表于 2023-7-17 16:41 | 显示全部楼层
本帖最后由 lasx 于 2023-7-17 16:42 编辑

tar 分卷打包。tar -czf - 文件夹 | split -b 2048m -d - 文件名.tar.gz

自己调整文件分卷大小,比内存稍小些应该可行。打包小文件最是麻烦。我千万级的数据文件在windows下搞了好几天。
发表于 2023-7-17 16:55 来自手机 | 显示全部楼层
本帖最后由 ysc3839 于 2023-7-17 16:58 编辑
xc11748 发表于 2023-7-17 15:58
用bandizip最后提示资源耗尽,把内存和系统盘设置的缓存压榨尽了,一滴不剩。用7zip压缩了一天多,最后提 ...


还是没说清楚具体是什么错误提示,请截图或拍照

不过还是建议先试试Win10自带命令行tar再说,说不定就没问题
发表于 2023-7-17 17:01 | 显示全部楼层
tar -czvf dabao.tar   /dabao/
发表于 2023-7-17 19:31 | 显示全部楼层
这么多小文件啊,要是其中一个出错损坏了是不是要排查到明年了
发表于 2023-7-17 20:33 | 显示全部楼层
16亿个文件是怎么来的?
用原方式重生成下吧。
发表于 2023-7-17 20:42 | 显示全部楼层
mqwxp 发表于 2023-7-17 14:08
建一个分区用windows的文件压缩功能,然后整个分区转储过去

直接ghost 吧,
 楼主| 发表于 2023-7-17 20:43 来自手机 | 显示全部楼层
solar_cs 发表于 2023-7-17 20:33
16亿个文件是怎么来的?
用原方式重生成下吧。

自己写程序生成的,小众领域,很容易生成,最终是2的21次方个文件
 楼主| 发表于 2023-7-17 20:46 来自手机 | 显示全部楼层
ysc3839 发表于 2023-7-17 16:55
还是没说清楚具体是什么错误提示,请截图或拍照

不过还是建议先试试Win10自带命令行tar再说,说不定就没 ...

现在正在用tar命令压缩,看行不行。后期会有200多亿个文件,管理和传输也是个大问题
发表于 2023-7-17 21:12 来自手机 | 显示全部楼层
xc11748 发表于 2023-7-17 20:43
自己写程序生成的,小众领域,很容易生成,最终是2的21次方个文件

那或许要考虑一下使用数据库
发表于 2023-7-17 21:45 | 显示全部楼层
直接克隆硬盘镜像最快.
发表于 2023-7-17 21:52 来自手机 | 显示全部楼层
xc11748 发表于 2023-7-17 20:46
现在正在用tar命令压缩,看行不行。后期会有200多亿个文件,管理和传输也是个大问题 ...

程序简单,实现起来麻烦。算法复杂,实现简单。
发表于 2023-7-17 21:56 | 显示全部楼层
本帖最后由 夏天 于 2023-7-17 22:06 编辑
xc11748 发表于 2023-7-17 20:43
自己写程序生成的,小众领域,很容易生成,最终是2的21次方个文件


那用ZFS呢?生成,直接linux挂载。前几天才搞了一个十几T文件的数据池,用zfs send/recv 发到另外一个池,一天多就搞定了。我那是机械盘。你SSD对SSD ,那没啥压力吧。
发表于 2023-7-17 22:39 | 显示全部楼层
tar 没问题 我刚好跟你类似的项目 800多g的 1-4k的文件   压缩后大概70g 左右tar  -zcf  windows下如何放得下这么多文件的 比较好奇 按4k蔟 容不下这么多文件吧。
发表于 2023-7-17 22:39 | 显示全部楼层
还有个方案 就是手动先分组 慢慢一个文件夹一个文件夹压缩  7z  winrar 都有文件个数上限的。
发表于 2023-7-17 23:07 | 显示全部楼层
复制粘贴到移动硬盘或者磁盘里带过去不行吗?
发表于 2023-7-17 23:11 来自手机 | 显示全部楼层
dd命令呢?
发表于 2023-7-17 23:11 | 显示全部楼层
xc11748 发表于 2023-7-17 20:43
自己写程序生成的,小众领域,很容易生成,最终是2的21次方个文件

2的21次方不是 210万不到么??

16亿 ,没记错,我记得是超过 2的32次方了啊。。。

你这种,常规环境下,好像确实很多软件无法运作。

虽然是 64位系统,但是毕竟不是真64位的啊。。。

只能建议你 把这 16个文件,分成好几个 文件夹之后,在 分开压缩吧。
发表于 2023-7-18 00:37 | 显示全部楼层
tar cvzf
发表于 2023-7-18 01:06 | 显示全部楼层
網盤同步?
发表于 2023-7-18 02:42 | 显示全部楼层
直接扔进数据库里呗,16亿不算多。
发表于 2023-7-18 06:15 | 显示全部楼层
xc11748 发表于 2023-7-17 14:11
设置仅存储模式了,还是提示压缩失败

就不能分几部分打包压缩么?

1.98TB 的小文件打包成一个压缩包,不知道多强大的电脑配置了?
发表于 2023-7-18 07:14 来自手机 | 显示全部楼层
何不tar?而且linux基本都有吧
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-28 04:30 , Processed in 0.013422 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表