Linux 使用 Split 命令分割文件与合并

Linux的split命令,作为一个强大且实用的工具,其核心功能是将一个极其庞大的单个文件分割成多个更便于管理和处理的小文件。这个特性在众多实际应用场景中都展现出了极高的价值和灵活性。无论是为了适应存储设备的容量限制,还是为了方便文件传输时降低单个文件大小以满足网络传输条件,甚至是在进行大数据分析前按照一定规则预先划分数据集,Linux split命令都能发挥关键作用。

使用场景

  1. 数据传输

    • 当需要通过网络传输大文件,而带宽有限或者网络不稳定时,可以先将大文件分割成小块进行传输,之后再在目标主机上合并。
    • 例如,在FTP、电子邮件等不支持大文件上传的情况下,分块发送更方便。
  2. 磁盘空间管理

    • 如果服务器或存储设备的空间不足,可以临时将大日志文件或其他大型数据文件分割,处理完后再合并。
    • 对于备份操作,有时也需要对大文件进行分卷备份以适应磁盘介质(如CD/DVD)的大小限制。
  3. 分布式处理

    • 在并行计算或分布式环境中,可能需要将大数据集分割为若干小文件,以便分配到不同的节点上分别处理,处理完成后结果可以再合并。
  4. 数据库和日志处理

    • 日志文件过大时,可将其分割成多个便于阅读和分析的小文件。
    • 大型数据库备份文件也可以按照特定大小分割,便于管理和恢复。
  5. 脚本自动化

    • 在脚本中自动执行文件分割,用于后续的批处理任务或归档需求。

文件分割

  1. 最直接的方式进行分割
bash 复制代码
split -b 100M largefile.txt smallparts_

这条命令会将名为largefile.txt的大文件按每部分100MB的大小分割,并生成一系列以smallparts_开头的文件。

  1. 分割文件以数字为结尾,使用 -d
bash 复制代码
split -b 100M -d largefile.txt largeparts_

此命令会按100MB大小分割文件,但生成的文件名将以数字作为后缀(例如:largeparts_00largeparts_01等)。

  1. 将文件分割成指定份数, 使用 -n
bash 复制代码
split -n 2 -d largefile.txt output_

此命令 -n 2 表示将文件内容均分为两部分,-d 指定生成的文件名中包含数字后缀;执行上述命令后,largefile.txt 将被分割成两个文件:output_00output_01

文件合并

可以使用cat命令来合并由split命令分割出来的文件

bash 复制代码
cat x* > original_file
  • 这里x*表示所有以"x"开头的文件,这些文件是之前用split命令分割出来的。cat会将它们的内容连接起来,并重定向到新的original_file中。

注意事项:合并前请确保分割后的文件顺序正确,如果是按数字序号排列的,则直接按顺序合并即可。

MD5校验

文件拆分合并后,保险起见我们应当对其计算一下MD5,保证数据传输的一致性,我们没办法保证文件在传输过程中是否损坏,所以尤其是对一些分片数量多,文件体积大的文件合并后应当做一下校验。这里对合并文件前后MD5计算

bash 复制代码
md5sum largefile.txt
md5sum output.txt

可以看到两个文件的MD5值是一样的

更多用法

显示帮助信息

bash 复制代码
split --help
相关推荐
C-DHEnry3 分钟前
Linux概述:从内核到开源生态
linux
蟑螂恶霸11 分钟前
解决ubuntu20中tracker占用过多cpu,引起的风扇狂转
linux·运维·ubuntu
rzsh123422 分钟前
[ linux-系统 ] 进程地址空间
linux
1024小神1 小时前
tauri2项目使用sidcar嵌入可执行文件并使用命令行调用
linux·运维·服务器
AI风老师1 小时前
2、ubuntu系统配置OpenSSH | 使用vscode或pycharm远程连接
linux·运维·服务器·ssh
枫叶落雨2221 小时前
下载的旧版的jenkins,为什么没有旧版的插件
运维·jenkins
PatrickYao04222 小时前
想要建站但没有服务器?雨云RCA,免服务器即可搭建完整网站!!!
运维·服务器·alist·云应用·无服务器部署
独行soc2 小时前
2025年渗透测试面试题总结-百度面经(题目+回答)
运维·开发语言·经验分享·学习·面试·渗透测试·php
艾伦_耶格宇2 小时前
【NGINX】 -10 keepalived + nginx + httpd 实现的双机热备+ 负载均衡
运维·nginx·负载均衡
选与握2 小时前
ubuntu工控机固定设备usb串口号
linux·运维·ubuntu