TGViewer
Rust Rust @rust_code · 8.92K subscribers
Post #927 3.39K
💡 Задача Linux: Пропажа файла после echo

У вас есть файл /tmp/testfile с важным содержимым. Вы решили добавить в него строку "Hello, world!" с помощью команды:


echo "Hello, world!" > /tmp/testfile

Однако после выполнения этой команды вы замечаете, что всё старое содержимое исчезло и осталась только одна строка "Hello, world!".

Вопрос:
Почему это произошло? Как правильно было добавить строку, не потеряв содержимое?

✅ Решение и объяснение:
🔍 Что делает >?
Символ > в Bash — это перезапись (truncate) файла. Когда вы пишете:

```bash
echo "Hello, world!" > /tmp/testfile```
Это значит:

Shell открывает файл на запись с обнулением (truncate).

Весь предыдущий контент удаляется, прежде чем echo записывает новую строку.

Вот подвох: даже если echo кажется безобидной командой, сам процесс перенаправления (>) выполняется до запуска echo.

✅ Как сделать правильно?
Чтобы добавить строку, нужно использовать >>, а не >:

```bash
echo "Hello, world!" >> /tmp/testfile
```
>> открывает файл в режиме append, не трогая текущее содержимое.

⚠️ Бонусный подвох (для профи)
Выполните это:

```bash
cat /tmp/testfile > /tmp/testfile
```
После этого файл станет пустым. Почему?

➡️ Ответ: cat читает из /tmp/testfile, но перенаправление > делает truncate сразу, еще до запуска cat. То есть:

Файл обнуляется,

Потом cat читает его… но он уже пустой!

Чтобы избежать такого поведения, можно использовать временный файл:

```bash
cat /tmp/testfile > /tmp/tmpfile && mv /tmp/tmpfile /tmp/testfile```
  • 👍 27
  • 🥱 19
  • ❤ 3
  • 🥰 3
  • 🔥 1
More from @rust_code
  1. Sep 26, 2026Как создать пустой vector по-гениальному
  2. Sep 24, 2026🦀 Как доказать, что Rust-код работает правильно: Amazon рассказывает о Verus Rust предотв…
  3. Sep 24, 2026❌В IT сейчас кризис джунов, но только не в кибербезе. ❗️Рынку не хватает 50 000 специалист…
  4. Sep 24, 2026Rust без аллокатора: `fff` снизил пиковое потребление памяти через `mmap` Во время тестиро…
  5. Sep 23, 2026photo post
  6. Sep 20, 2026Zero cost
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 →