将代码补丁应用于每个项目的子目录



我有超过10多个Drupal网站,我需要对每个补丁进行应用。当前,我的补丁位于/home/201803.patch 中,而我的Drupal网站则位于同一文件夹中。目前,我必须在每个目录中进行CD,然后运行以下命令:

补丁-P1<../201803.patch

,但我只想能够从/主文件夹中进行每个操作。我在主文件夹中尝试了:

patch -p1 subdirectory/<201803.patch

但这无效。我如何从上面一个目录进行修补?

这是关于bash/shell的问题。尝试以下内容。这将在您当前位置的每个子目录中 cd,然后运行给定命令。

find . -maxdepth 1 -type d ( ! -name . ) -exec bash -c "cd '{}' && patch -p1 < ../201803.patch" ;

或一一:

cd subdirectory && patch -p1 < ../201803.patch && cd ..

最新更新