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
相关推荐
龙鸣丿33 分钟前
Linux基础学习笔记
linux·笔记·学习
耶啵奶膘2 小时前
uniapp-是否删除
linux·前端·uni-app
_.Switch3 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410833 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.3 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
XMYX-04 小时前
使用 SSH 蜜罐提升安全性和记录攻击活动
linux·ssh
芯盾时代4 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方5 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘5 小时前
NFS服务器
运维·服务器
苹果醋35 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx