Флаг: English English

Список материалов

Безопасный Find & Replace: как не убить бинарники

30.12.2025

При работе с реальными проектами (смена CDN, миграция, рефакторинг) часто нужно массово заменить один URL на другой.

На первый взгляд задача кажется тривиальной: sed -i 's|old|new|g' **/* — и готово.

В реальности такой подход — это русская рулетка.

Неосторожная замена приводит к:

  • 💀 Повреждению бинарных файлов (images, pdf, archives);
  • 📉 Мусору в git-истории (бинарники помечаются как изменённые);
  • 🚫 Невозможности чистого отката, если бэкап не был сделан.

В этой заметке разберём production-grade алгоритм: меняем только текст, не трогаем бинарники, делаем точечный бэкап.