Como fazer para sobrescrever o diretório em vários lugares com um diretório de origem

2

Então, hoje eu encontrei um dos meus arquivos PHP estava desatualizado, então eu tenho que substituir o diretório phpthumb em todo o servidor.

Vários sites usam essa pasta em vários locais desconhecidos, então como posso substituir todos esses diretórios de um caminho de origem? (ex: /home/test/testuser/phpthumb/ to /home/*/*/phpthumb/ )

    
por Jordy 06.10.2014 / 12:29

2 respostas

2

Isso deve funcionar:

echo /home/*/*/phpthumb | xargs -t -n 1 cp -r /home/test/testuser/phpthumb/*

Você precisa trabalhar com xargs . Infelizmente, cp não pode copiar para vários destinos. cp pode lidar com várias fontes.

Explicação:

  • echo /home/*/*/phpthumb : lista todos os phpthumb diretórios
  • xargs -t -n 1 : xargs deve chamar cp para cada linha separadamente
  • cp -r /home/test/testuser/phpthumb/* o comando xargs deve chamar. Observe que o diretório de destino será anexado no final por xargs .
por 06.10.2014 / 13:41
2

tente isto:

$ find /home -name "phpthumb" -type d -not -path "*test/testuser/phpthumb" \
    -exec cp /home/test/testuser/phpthumb/* {} \;
O comando

find procura phpthumb em /home :

  • -type d pasta de seleção
  • -not -path exclui test/testuser/phpthumb

Para cada pasta, execute o comando cp . Se test/testuser/phpthumb for uma árvore com subpasta, adicione a opção -R a cp .

    
por 06.10.2014 / 13:34