linux - 如何创建补丁以删除文件夹并使用 diff 创建新文件夹?

标签 linux bash diff patch

例如,我有两个目录oldnew。目录old 有一个子目录abc,目录new 有一个子目录cde。 我尝试使用

创建补丁
diff -ru old/ new/ > file.patch

我在 file.patch 中得到以下输出:

Only in old/: abc
Only in new/: cde

当我尝试修补文件时出现以下错误:

patch: **** Only garbage was found in the patch input.

当我尝试使用以下方法创建补丁时:

diff -ruN old/ new/ > file.patch

我得到空的 file.patch。

有没有什么方法可以创建一个补丁,当打补丁到旧版本时会删除 abc 并在旧版本中创建 cde

最佳答案

makepatch脚本对此很有用。我将它用于几乎所有的源补丁,以及 diffstat。还有applypatch (完成任务),虽然我自己不使用它。

GNU diff new-file“-N”选项确实(过去不是……)与递归选项“-r”一起工作。所以你可以使用

diff -r -N old new

我刚刚验证它适用于 diff 3.0(现在已经很旧了)。

关于linux - 如何创建补丁以删除文件夹并使用 diff 创建新文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28622449/

相关文章:

c - 桌面环境之外的基于 GTK 的应用程序

c++ - 交叉编译: special cross compiler or just gcc with option -march?

bash - 循环脚本只执行一次 - Bash

linux - 如何输出两个文件夹中文件的差异并将输出以相同的名称保存在不同的文件夹中

linux - 在 bash 中制作屏幕射击器

linux - 将参数传递给使用 LD_PRELOAD 加载的库

bash - 停止 awk 以将变量与下一条记录进行比较

mysql - 为什么我无法使用 bash 脚本对自动增量 mysql 表重新排序?

php - PHP 中的字符字符串差异

regex - 忽略 diff 命令中带有反斜杠的模式