TGViewer
Linux Ready | DevOps Linux Ready | DevOps @linux_ready · 11.2K subscribers
Post #1253 2.44K
sponge: утилита, которая спасает, когда нужно перезаписать файл через pipe!

Есть старый неприятный момент в shell: если читаешь файл и тут же пишешь результат обратно в него же через >, можно случайно получить пустой файл.

Например:
grep -v DEBUG app.log > app.log


На первый взгляд выглядит нормально. На практике — нет.
Shell откроет app.log на запись сразу, ещё до того, как grep дочитает его до конца. В итоге файл можно просто обнулить.

В таких случаях выручает sponge из moreutils.

Он работает просто: сначала полностью читает входной поток, и только потом записывает результат в файл.

То же самое, но безопасно:
grep -v DEBUG app.log | sponge app.log


Несколько примеров, где это реально удобно.

Заменить текст в конфиге:
sed 's/localhost/db.internal/' config.yml | sponge config.yml


Убрать пустые строки:
grep -v '^$' file.txt | sponge file.txt


Отсортировать файл:
sort file.txt | sponge file.txt


Отформатировать JSON:
jq '.' data.json | sponge data.json


Из нюансов: sponge сначала забирает весь поток целиком, а уже потом пишет в файл. Для обычных задач это вообще не проблема, но на очень больших файлах про это лучше помнить.

🔥 Если коротко: когда нужно безопасно перезаписать файл результатом команды, sponge делает именно то, что ожидаешь.

🚪 Linux Ready | #практика
  • 🤝 15
  • 👍 11
  • 🔥 8
More from @linux_ready
  1. Oct 6, 2026Большой файл можно клонировать почти мгновенно без полного копирования его данных! На файл…
  2. Oct 5, 2026Для отладки изолированного процесса необязательно заходить внутрь контейнера или менять ег…
  3. Oct 5, 2026Как оплачивать зарубежные сервисы в 2026 году? Можно бегать между посредниками и бояться б…
  4. Oct 5, 2026📂 Напоминалка для работы с SED! Например, sed 's/old/new/g' file.txt заменяет все вхожден…
  5. Oct 2, 2026В Linux можно копировать собранные файлы так, чтобы не менять файл назначения, если новая…
  6. Oct 2, 2026🎓 Как гарантированно войти в сферу кибербезопасности с официальным дипломом? Самостоятель…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →