首页/系统/Linux 运维命令速查/diff -u 生成统一格式补丁
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

diff -u 生成统一格式补丁

-u 输出带上下文与文件头的统一格式,是 patch、git apply 与代码评审的标准格式;-ruN 常用于「旧版本目录 → 新版本目录」的整树补丁。

Linux 运维命令速查系统更新于 2026-10-12
用途生成统一格式补丁文件
语法diff -u 旧文件 新文件 > 变更.patch
要点-N 把缺失文件当空文件(新增/删除也能进补丁)

常用示例

常用示例
diff -u app.conf.bak app.conf > app.patch
diff -ruN conf.old conf.new > site.patch
diff -u --label a/app.conf --label b/app.conf old new > app.patch
补丁头里的 a/ b/ 前缀决定应用时 -p 的数字:a/ b/ 风格对应 patch -p1;本地无前缀文件对应 -p0。

易错点

  • 补丁里的时间戳与文件路径是元数据,放错工作目录会导致「找不到文件」——先看补丁头再定 -p 值
  • 二进制文件 diff 无意义(会提示 Binary files differ),需用 cmp/xxd 对比

数据来源与参考

  • man 1 diff(GNU diffutils 手册)
  • man 1 patch

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌