find . -mindepth 1 -type d -exec echo cp index.php {} \;
Приведенная выше команда скопирует файл index.php
из вашего текущего каталога во все подкаталоги, рекурсивно, но не сразу.
Убедившись, что он печатает все правильные команды копирования, удалите echo
и выполните его. echo
- это просто гарантия, показывающая, что будет делать вся команда, прежде чем делать что-то, чего вы, возможно, не захотите.
Еще один интересный подход - спасибо @RedGrittyBrick - заключается в символической ссылке на файлы вместо простого их копирования. Таким образом, все файлы index.php
в подкаталогах будут, так сказать, ярлыком к корневому каталогу и не будут дублироваться. Для этого в приведенной выше команде измените cp
на ln -s
. Таким образом, когда вы изменяете "главный" файл index.php
, все остальные в подкаталогах будут по-прежнему указывать на него и, следовательно, автоматически изменяться при просмотре.
Для полноты, вся команда в разобранном виде работает так:
find .
, поиск в текущем каталоге
-mindepth 1
, углубляясь хотя бы в один каталог
-type d
, только найти каталоги
-exec …
, выполнить команду echo cp index.php {}
, где {}
заменяется на каждый найденный каталог. Эта команда вызывается несколько раз, по одному разу для каждого подкаталога.