暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Windows平台文件拆分与完整性检查的过程

济南小老虎 2023-09-08
102

场景

有时候在没有linux主机的情况下, 自己下载下来的文件比较大.
比较难以上传到一些特殊的系统/主机上面.

这个时候需要将文件进行拆分.
所以可以通过winrar 或者是zip等工具进行打包切分
但是一方面,压缩,解压缩表费时费力.
另外迁移到其他操作系统可能兼容性也存在问题.

所以这个时候想着能够方便快捷的进行文件的拆分与合并.
并且可以无损的迁移到 linux 系统上面.


工具选择

Windows自带的bash
或者是 cygwin等模拟linux的工具.


安装部署说明

我的机器 bash一直存在问题. 

适用于 Linux 的 Windows 子系统没有已安装的分发。

使用 'wsl.exe --list --online' 列出可用的分发
并使用 'wsl.exe --install <Distro>' 进行安装。

也可以通过访问 Microsoft Store 安装分发:
https://aka.ms/wslstore
Error code: Bash/Service/CreateInstance/GetDefaultDistro/WSL_E_DEFAULT_DISTRO_NOT_FOUND

不知道是不是windows版本的问题, 比较难搞.


cygwin

网上的安装说明比较多, 不在详细展开, 仅说明一下如何使用. 

E:\cygwin64>Cygwin.bat

zhaob@zhao-7192 ~
$ df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
E:/cygwin64 ntfs 932G 714G 219G 77%
C: ntfs 201G 154G 47G 77% cygdrive/c
D: ntfs 275G 87G 189G 32% cygdrive/d

zhaob@zhao-7192 ~
$ cd cygdrive/d/BaiduNetdiskDownload/

zhaob@zhao-7192 cygdrive/d/BaiduNetdiskDownload
$ du -ahd 1 |sort -k1hr |tail -n 3

然后可以使用命令 split 进行处理


split命令的说明

split -l 100
split -b 100m

-l 表示是lines, 可以按照行进行切分. 主要是进行 csv或者是文本的切分. 这样能够准确,不会切分坏了.

-b 是大小的含义 100m 指代 每个文件100mb大小. 主要是进行压缩包的处理. 便于切分上传.

split -l 1000 something someprefix

第一个是要切分的文件.
第二个是切分出来文件的前缀.


文件合并

split 拆分的文件 合并非常容易

可以使用 cat someprefix* >somethinginone
就可以将split 切分的文件进行合并了.


文件准确性检查

1. linux 可以使用
for i in `ls` ; do md5sum $i ; done
计算每个文件的md5值.

2. windows 可以使用
certutil -hashfile someprefixaa md5
可以计算文件的md5值

可以看看 windows平台上面的 md5与linux上传后的文件的md5进行对比.

如果有差异可能会失败

需要完全一致, 才能保证文件完全可用.


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论