cat命令拼接split文件最直接可靠,关键须确保顺序正确:默认xaa、xab等字母后缀按字典序展开即为原始顺序,故cat x > originalfile即可;若自定义前缀如part,则用cat part_ > originalfile;后缀位数不统一时宜用printf '%s\0' part* | sort -zV | xargs -0 cat > original_file,并通过du -b和sha256sum校验完整性。

用 cat 命令拼接最直接可靠,但关键在确保文件顺序正确——否则拼出来的是乱序数据,内容就毁了。
按 split 默认命名规则拼接(xaa、xab、xac…)
split 不加参数时生成字母后缀文件,按字典序排列刚好是原始顺序。直接通配符合并即可:
- cat x* > original_file —— 适用于默认命名(xaa、xab…)
- 如果前缀不是
x(比如用了split -b 100M big.log part_),就写成:cat part_* > big.log - 注意:
x*在 shell 中会按字典序展开,xaaxab xac ✅ 符合分割顺序
按数字后缀拼接(x00、x01、x02…)
用了 -d 参数后,文件名是 x00、x01、x02……但 ls x* 或 cat x* 仍按字典序展开,x0、x1、x10 会错乱。必须显式控制顺序:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 用 cat x{00..99} > original_file(已知共100个)
- 或更稳妥:printf '%s\0' x[0-9][0-9] | sort -zV | xargs -0 cat > original_file
- 如果后缀位数不固定(如
x0、x10、x100),sort -V(版本排序)比普通sort更安全
校验拼接是否完整无误
合并完别急着删小文件,先做两步验证:
- 比对总大小:du -b original_file 应等于所有分割文件
du -b x* | awk '{sum+=$1} END{print sum}' - 比对校验和(推荐):sha256sum original_file 和原始大文件的哈希值一致才真正还原成功
- 若原始文件已不存在,可用 split --verbose 分割时记录的行数/字节数反推,再用
head -c N或tail -n M抽样检查边界
其他合并场景补充
不是所有“拼接”都适合用 cat:
- 要按列横向合并(比如把两列日志并排对齐),用 paste file1 file2
- 要合并同名但不同目录下的多个日志:find /var/log -name "app*.log" -exec cat {} + > all_app.log
- 合并时去重或排序,需配合
sort -u或awk '!seen[$0]++'等工具,cat 本身不处理逻辑










