← К оглавлению урока

🐛 Типичные ошибки

⚡ Топ-3 ошибки

  • rm -rf без проверки пути — данные не восстановить.
  • mkdir new/dir без -p — если промежуточной папки нет, ошибка.
  • rmdir на непустую папку — используйте rm -r.

Разбор ошибок

❌ Ошибка 1. rm -rf без проверки пути

# Хотели удалить /home/user/tmp_files
# Случайно написали:
rm -rf /home/user /tmp_files
# Удалило весь /home/user!

Почему: пробел разделил аргументы — rm -rf получила два аргумента: /home/user и /tmp_files. Оба удалены.

Как правильно: перед удалением сделайте ls на этот путь, убедитесь, что там то, что нужно. Используйте rm -ri (интерактивный режим, спрашивает подтверждение) для важных папок.

❌ Ошибка 2. mkdir без -p для вложенных папок

mkdir /home/user/projects/web/src
# mkdir: cannot create directory '/home/user/projects/web/src':
# No such file or directory

Почему: mkdir без флагов создаёт только одну директорию и требует, чтобы родительская уже существовала.

Как правильно: mkdir -p /home/user/projects/web/src — флаг -p создаёт всю цепочку.

❌ Ошибка 3. rmdir на непустую папку

rmdir /home/user/docs
# rmdir: failed to remove 'docs': Directory not empty

Почему: rmdir работает только с пустыми папками — это защита от случайного удаления.

Как правильно: если папку нужно удалить со всем содержимым — используйте rm -r /home/user/docs. Сначала сделайте ls, убедитесь в содержимом!

❌ Ошибка 4. cp без -r при копировании папки

cp /home/user/animals /tmp/
# cp: -r not specified; omitting directory 'animals'

Почему: cp без -r копирует только файлы; папку не трогает и сообщает об этом.

Как правильно: cp -r /home/user/animals /tmp/.

❌ Ошибка 5. mv переписывает без предупреждения

# В /home/humans уже есть файл adam
mv /tmp/adam /home/humans/adam
# Старый adam перезаписан без вопросов!

Почему: mv (как и cp) по умолчанию перезаписывает цель без предупреждения.

Как правильно: используйте mv -i (interactive) — спросит перед перезаписью. Или сначала проверьте: ls /home/humans.

❌ Ошибка 6. Пробел в имени файла без кавычек

mkdir my folder
# Создаёт ДВЕ папки: my и folder!

mkdir "my folder"
# Создаёт ОДНУ папку: my folder

Почему: оболочка разбивает строку по пробелам на аргументы. Пробел в имени — нужны кавычки или обратный слеш: my\ folder.

Как правильно: избегайте пробелов в именах файлов (используйте - или _). Если необходимо — оборачивайте в кавычки.