Безопасный Find & Replace: как не убить бинарники
30.12.2025
При работе с реальными проектами (смена CDN, миграция, рефакторинг) часто нужно массово заменить один URL на другой.
На первый взгляд задача кажется тривиальной: sed -i 's|old|new|g' **/* — и готово.
В реальности такой подход — это русская рулетка.
Неосторожная замена приводит к:
- 💀 Повреждению бинарных файлов (images, pdf, archives);
- 📉 Мусору в git-истории (бинарники помечаются как изменённые);
- 🚫 Невозможности чистого отката, если бэкап не был сделан.
В этой заметке разберём production-grade алгоритм: меняем только текст, не трогаем бинарники, делаем точечный бэкап.