split
命令split
是 Linux 系统自带的文件分割工具,功能强大且简单易用。
基本语法:
split [选项] 输入文件 [输出文件前缀]
常用选项:
- -b SIZE
:按大小分割(如 -b 100M, -b 1G)
- -l NUM
:按行数分割
- -a NUM
:指定后缀长度(默认为2)
- -d
:使用数字后缀而非字母
- --verbose
:显示分割过程
示例:
# 按100MB大小分割文件
split -b 100M large_file.dat split_file_
# 按行数分割(每10000行一个文件)
split -l 10000 large_log.txt log_part_
# 使用数字后缀并显示过程
split -b 500M -d --verbose huge_file.bin part_
dd
命令dd
可以更精确地控制分割过程,适合二进制文件。
示例:
# 分割为1GB的文件块
dd if=large_file.iso of=part1 bs=1G count=1
dd if=large_file.iso of=part2 bs=1G count=1 skip=1
cat
命令最简单直接的合并方法:
cat split_file_* > original_file
dd
命令# 合并多个部分
dd if=part1 of=restored_file bs=1M
dd if=part2 of=restored_file bs=1M seek=1024 # 假设part1是1GB
# 计算原始文件和合并后文件的MD5校验
md5sum original_file
md5sum restored_file
# 使用parallel加速分割
parallel --pipepart --block 100M -a large_file.dat 'cat > part_{#}'
# 边分割边压缩
split -b 100M --filter='gzip > $FILE.gz' large_file.dat compressed_part_
# 使用openssl加密分割
split -b 100M --filter='openssl enc -aes-256-cbc -pass pass:yourpassword > $FILE.enc' sensitive_file
--preserve
选项保留原始文件属性如果更喜欢GUI工具,可以考虑: - File Splitter & Joiner - HJSplit - gsplit
但这些工具通常需要额外安装,而命令行工具是Linux系统自带的。