find . -mindepth 1 -type d -exec echo cp index.php {} \;
O comando acima copia o arquivo index.php
do seu diretório atual para todos os subdiretórios, recursivamente - mas não imediatamente.
Quando você tiver certeza de que ele imprime todos os comandos de cópia corretos, remova o echo
e execute-o. echo
é apenas uma proteção para mostrar a você o que todo o comando faria antes de realmente fazer algo que você talvez não queira.
Outra abordagem interessante - obrigado @RedGrittyBrick - seria link simbólico dos arquivos em vez de simplesmente copiar eles. Dessa forma, os arquivos index.php
nos subdiretórios seriam apenas um atalho, por assim dizer, para o diretório raiz e não duplicados. Para fazer isso, no comando acima, altere cp
para ln -s
. Dessa forma, quando você altera o arquivo "master" index.php
, todos os outros nos subdiretórios ainda apontam para ele e, portanto, também mudam automaticamente quando visualizados.
Para completar, todo o comando, quebrado, funciona assim:
-
find .
, pesquisa no diretório atual -
-mindepth 1
, indo pelo menos um diretório de profundidade -
-type d
, localize apenas diretórios -
-exec …
, execute o comandoecho cp index.php {}
, onde{}
é substituído por todos os diretórios encontrados. Este comando é chamado várias vezes, uma vez para cada subdiretório.