Иногда при переносе сайтов требуется подправить пути в конфигах (и не только), это часто встречается со старыми сайтами, которые писали не опытные веб разработчики. К счастью, сейчас вы можете исправить всё в кратчайшее время, не отредактировав в ручную ни один файл.
Для замены всех подстрок во всех файлах в текущей директории нам понадобятся find
и xargs
.
Для примера возьмём ситуацию, когда переносим сайт на новый сервер с другими настройками вебсервера и нужно заменить старый путь к корню сайта «/home/site/data/www/site.ru» на новый «/var/www/sites/site.ru», не забываем экранировать слэши:
find . -name "*.php" -print | xargs perl -pi -e's/\/home\/site\/data\/www\/site.ru/\/var\/www\/sites\/site.ru/ig' *.php
Чтобы вы понимали конструкцию, часть с абракадаброй можно представить схематично в виде 's/a/b/ig'
, где строка a заменяется на строку b.
ps. Способ решает проблему с кривонаписанными сайтами, но временно. Лучше избегать таких сайтов или переписывать нормально работу с путями.