Aplique vários patches em diferentes níveis

0

Estou tentando aplicar patches para vários arquivos. Esses arquivos estão presentes em diretórios diferentes em diferentes níveis em um diretório de nível superior. A estrutura de diretórios é a mesma para os arquivos de patch também.

Existe alguma maneira de aplicar todos os patches de uma só vez?

Estou aplicando-os individualmente usando o comando patch -p1.

    
por Atchyut Sreekar 04.01.2016 / 06:49

1 resposta

0

Você pode fazer algo como:

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

Este comando find :

  • procura arquivos no diretório atual ( . ) recursivamente
  • que têm nomes de arquivos terminados em .patch (ajuste de acordo com o padrão de nomenclatura seguido pelos arquivos de patch)
  • e no diretório em que um arquivo correspondente foi encontrado, executa sh -c 'patch -p1 < $0' matched-file :
    • $0 é o primeiro argumento, que é o arquivo correspondente, então o comando é essencialmente patch -p1 < matched-file
    • sh -c é necessário, pois estamos usando o redirecionamento.
por muru 04.01.2016 / 07:09