Copie um único arquivo do diretório principal recursivamente em todos os diretórios dentro

Copie um único arquivo do diretório principal recursivamente em todos os diretórios dentro

Estou em um servidor dedicado usando CentOS e neste servidor tenho mais de 5.000 diretórios em um diretório principal.

No diretório principal eu tenho um arquivo index.php. Eu gostaria de copiar isso index.phppara todos os mais de 5.000 diretórios, mas a única maneira que conheço é fazendo isso manualmente.

Existe uma maneira através da linha de comando de inserir algo parecido cpe fazê-lo funcionar no diretório? Eu copiaria tudo em todos os diretórios e subdiretórios dentro deste diretório principal em que estou começando.

Responder1

find . -mindepth 1 -type d -exec echo cp index.php {} \;

O comando acima copiaria o index.phparquivo do seu diretório atual para todos os subdiretórios, recursivamente – mas não imediatamente.

Quando você tiver certeza de que todos os comandos de cópia corretos serão impressos, remova-o echoe execute-o. echoé apenas uma salvaguarda para mostrar o que todo o comando faria antes de realmente fazer algo que você não deseja.

Outra abordagem interessante – obrigado @RedGrittyBrick – serialink simbólicoos arquivos em vez de simplesmente copiá-los. Dessa forma, os index.phparquivos nos subdiretórios seriam todos apenas um atalho, por assim dizer, para aquele no diretório raiz e não duplicados. Para fazer isso, no comando acima, mude cppara ln -s. Dessa forma, quando você altera o index.phparquivo "mestre", todos os outros nos subdiretórios ainda apontariam para ele e, portanto, também mudariam automaticamente quando visualizados.


Para completar, todo o comando, dividido, funciona assim:

  • find ., pesquise no diretório atual
  • -mindepth 1, acessando pelo menos um diretório
  • -type d, encontre apenas diretórios
  • -exec …, execute o comando echo cp index.php {}, onde {}é substituído por todos os diretórios encontrados. Este comando é chamado várias vezes, uma vez para cada subdiretório.

informação relacionada