rm (Удаление)
100%

Командная строка · Урок 13

rm (Удаление)

Научитесь удалять файлы и каталоги, проверяя цели и выбирая более безопасные параметры rm.

Команда rm удаляет записи файловой системы. Обычно удаление из командной строки не перемещает объекты в корзину, а у rm нет встроенной отмены, поэтому проверяйте каждую цель до запуска.

Базовый синтаксис:

rm [OPTIONS] FILE...

Удаление файлов

Передайте rm один или несколько путей:

$ rm file1
$ rm notes.txt old-report.txt draft.md

До Enter проверьте написание и расположение. Резервная копия или система контроля версий надёжнее попыток восстановления после удаления.

Какая команда после проверки цели удаляет old-report.txt?

Предварительный просмотр шаблона

Оболочка может раскрыть шаблон в несколько аргументов. Например, *.tmp выбирает совпавшие нескрытые имена текущего каталога:

$ rm *.tmp

Перед удалением просмотрите тот же шаблон без кавычек через ls:

$ ls *.tmp
cache.tmp  test.tmp
$ rm *.tmp

Оболочка раскрывает шаблон до запуска rm. При неожиданном совпадении исправьте шаблон и не продолжайте.

Какая команда без удаления показывает нескрытые пути, выбранные шаблоном *.tmp?

Запрос подтверждения

Параметр -i спрашивает перед каждым удалением:

$ rm -i important.txt
rm: remove regular file 'important.txt'? y

GNU rm -I запрашивает один раз, если удаляется больше трёх файлов или операция рекурсивна.

Какая команда спрашивает подтверждение перед удалением каждого файла?

Игнорирование отсутствующих файлов через -f

Параметр -f игнорирует отсутствующие аргументы и подавляет вопросы:

$ rm -f old-cache.txt

Это делает очистку в сценариях идемпотентной, если созданный файл уже может отсутствовать. Но не добавляйте -f лишь для подавления непонятной ошибки.

Удаление каталогов

Обычная rm каталог не удаляет:

$ rm projects
rm: cannot remove 'projects': Is a directory

Используйте -r или -R только для намеренного удаления всего дерева:

$ rm -r old-project

Для пустого каталога есть более узкая команда rmdir:

$ rmdir empty-directory

Она завершается ошибкой для непустого каталога, защищая содержимое от рекурсивного удаления.

Какая команда удаляет old-cache/ только при его пустоте?

Проверка рекурсивного удаления

Рекурсия может стереть целое дерево, а сочетание -r с -f в rm -rf убирает вопросы. Перед ней проверьте:

  • Текущий ли это каталог? Выполните pwd.
  • Показывает ли ls -ld -- TARGET нужный верхний путь?
  • Если есть шаблон, совпал ли просмотр без изменений с ожиданием?
  • Абсолютный путь или относительный? /tmp/cache и tmp/cache различаются.
  • Нет ли случайного пробела? rm -rf old-project и rm -rf old project имеют разные цели.

Перед целью, начинающейся с дефиса, используйте --, чтобы она не стала параметром:

$ rm -- -old-name

Не используйте sudo просто из-за ошибки разрешений. Сначала проверьте цель и причину запрета изменения содержащего каталога. Рекурсивное удаление с повышенными правами может повредить ОС или чужие данные.

Параметр -v сообщает об успешных удалениях:

$ rm -rv old-project
removed 'old-project/notes.txt'
removed directory 'old-project'

Какая команда после полной проверки удаляет old-project/ со всем содержимым, сохраняя обычные запросы?

Урок завершён

Вы завершили rm (Удаление)

Теперь вы умеете удалять записи файловой системы, считая каждую цель необратимой.

  • Проверять пути файлов до удаления.

  • Просматривать раскрытие шаблона командой только для чтения.

  • Запрашивать подтверждение через -i или -I.

  • Предпочитать rmdir, когда каталог обязан быть пустым.

  • Полностью проверять цель перед рекурсивным удалением.

Сохраните прогресс

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

Создать бесплатный аккаунт
Следующий Урок
Назад к Командная строка