在不同级别应用多个补丁

在不同级别应用多个补丁

我正在尝试为多个文件应用补丁。这些文件位于顶级目录中不同级别的不同目录中。补丁文件的目录结构也相同。

有什么方法可以让我一次性应用所有补丁吗?

我正在使用 patch -p1 命令单独应用它们。

答案1

你可以做类似的事情:

find . -iname '*.patch' -execdir sh -c 'patch -p1 < $0' {} \;

find命令:

  • .在当前目录中递归查找文件 ( )
  • 文件名以 结尾.patch(根据补丁文件遵循的命名模式进行调整)
  • 并在找到匹配文件的目录中运行sh -c 'patch -p1 < $0' matched-file
    • $0是第一个参数,即匹配的文件,因此该命令本质上是patch -p1 < matched-file
    • sh -c是必需的,因为我们使用重定向。

相关内容