You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建可识别空目录的diff补丁并应用至old目录?

正确使用diff创建补丁并同步old目录的方法

当前目录结构

$ tree
.
├── new
│   └── dir1
└── old

问题原因分析

你尝试的两个命令均未达到预期效果,具体原因:

  • 执行diff -ruN old new | patch -s -p0 -t后old无变化:diff -ruN会将old中不存在的目录视为空目录生成对比内容,但默认的patch不会自动创建新目录,因此无法同步新增的dir1。
  • 执行diff -ru old new | patch -s -p0 -t报错:因为old中没有dir1,diff不会生成任何有效差异补丁,导致patch识别输入为无效数据。

正确操作命令

要让old同步new的目录结构,需要让patch自动创建所需目录,使用以下命令:

diff -ruN old new | patch -s -p0 -t --mkdir && tree

执行后目录结构会更新为:

.
├── new
│   └── dir1
└── old
    └── dir1

替代方案(针对不支持--mkdir的patch版本)

如果你的patch工具没有--mkdir参数,可以先手动创建目标目录,再应用补丁:

mkdir -p old/dir1
diff -ruN old new | patch -s -p0 -t && tree

内容的提问来源于stack exchange,提问作者pmor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:44:54