Se cat funcionar, por que não usá-lo?
Para usar find e xargs :
find dirname -name namespec -print0 | xargs -0 patch patchargs
Exemplo:
find src/networking -type f -name 'network*.patch' -print0 | xargs -0 patch -p2
Eu tenho um diretório com .patch arquivos, gerado usando diff.
Eu gostaria de aplicar todos esses patches usando patch -p1 em outro diretório.
Mas o patch leva apenas um arquivo, a menos que eu cat .
Qual seria o comando para aplicar vários arquivos usando xargs ou uma ferramenta semelhante.
Supondo que você esteja usando o bash / sh / zsh etc ...
cd /path/to/source
for i in /path/to/patches/*.patch; do patch -p1 < $i; done
Isso realmente funciona (no Bash):
shopt -s globstar
for file in /path/to/patches/**/*.patch
do
patch -p1 < "$file"
done