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

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь эффективно управлять файлами в среде Linux с помощью команды rm. Управление файлами является фундаментальным навыком для любого человека, работающего с системами Linux. Команда rm (remove, удалить) представляет собой мощный инструмент, позволяющий пользователям удалять файлы и каталоги из системы.

Вы научитесь удалять отдельные файлы, несколько файлов с использованием подстановочных знаков (wildcards) и целые каталоги с использованием рекурсивных параметров. К концу этого практического занятия вы будете хорошо понимать, как эффективно и безопасно использовать команду rm в различных сценариях.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/FileandDirectoryManagementGroup -.-> linux/wildcard("Wildcard Character") subgraph Lab Skills linux/ls -.-> lab-271371{{"Удаление файлов в Linux"}} linux/rm -.-> lab-271371{{"Удаление файлов в Linux"}} linux/wildcard -.-> lab-271371{{"Удаление файлов в Linux"}} end

Удаление одного файла с помощью команды rm

Команда rm (сокращение от remove, удалить) используется для удаления файлов и каталогов в Linux. На этом этапе вы научитесь удалять один файл из системы.

Сначала проверим, какие файлы есть в каталоге old_predictions:

ls ~/project/old_predictions

Вы должны увидеть вывод, похожий на следующий:

prediction-01.txt  prediction-02.txt  prediction-03.txt  prediction-04.txt  prediction-05.txt

Теперь удалим файл prediction-01.txt с помощью команды rm:

rm ~/project/old_predictions/prediction-01.txt

Если операция выполнена успешно, команда rm не выводит никаких сообщений. Это обычное поведение многих команд Linux, где "нет новостей - хорошие новости", то есть если не появилось сообщения об ошибке, команда выполнилась успешно.

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

ls ~/project/old_predictions

Теперь в выводе должно быть видно, что файл prediction-01.txt больше не существует:

prediction-02.txt  prediction-03.txt  prediction-04.txt  prediction-05.txt

Команда rm удаляет файлы безвозвратно. В отличие от Windows или macOS, в командной строке нет Корзины или Папки с удаленными файлами. После удаления файла с помощью команды rm восстановить его не так просто.

Удаление нескольких файлов с использованием подстановочных знаков (wildcards)

Часто возникает необходимость удалить сразу несколько файлов. Linux предоставляет подстановочные знаки (wildcards), чтобы упростить эту задачу. Подстановочные знаки - это специальные символы, которые могут представлять один или несколько символов в имени файла.

Рассмотрим наиболее распространенные подстановочные знаки:

  • * (звездочка): Соответствует любому количеству символов (в том числе и нулю).
  • ? (вопросительный знак): Соответствует ровно одному символу.
  • [] (квадратные скобки): Соответствует любому символу, находящемуся внутри скобок.

Сначала проверим текущие файлы в каталоге old_predictions:

ls ~/project/old_predictions

Вы должны увидеть следующее:

prediction-02.txt  prediction-03.txt  prediction-04.txt  prediction-05.txt

Теперь удалим файлы prediction-02.txt, prediction-03.txt и prediction-04.txt сразу. Мы можем использовать сопоставление шаблонов с фигурными скобками {}, чтобы указать несколько вариантов:

rm ~/project/old_predictions/prediction-{02..04}.txt

В этой команде используется запись диапазона {02..04}, которая расширяется до 02, 03, 04. Перед выполнением команда обрабатывается оболочкой (shell), и в итоге выполняется следующая команда:

rm ~/project/old_predictions/prediction-02.txt ~/project/old_predictions/prediction-03.txt ~/project/old_predictions/prediction-04.txt

Другой распространенный подход - использование звездочки в качестве подстановочного знака. Например, если вы хотите удалить все файлы прогнозов, вы можете использовать следующую команду:

## Это только пример - не запускайте эту команду сейчас
## rm ~/project/old_predictions/prediction-*.txt

Проверим, какие файлы остались в каталоге:

ls ~/project/old_predictions

Теперь вы должны увидеть только следующее:

prediction-05.txt

Это показывает, что три файла были успешно удалены, и остался только файл prediction-05.txt.

Удаление каталогов с помощью команды rm -r

Базовая команда rm удаляет только файлы, но не каталоги. Чтобы удалить каталог и все его содержимое (файлы и подкаталоги), необходимо использовать опцию -r (рекурсивно).

Проверим, какие каталоги есть в папке archive:

ls ~/project/archive

Вы должны увидеть следующее:

2008  2009  2010

Теперь проверим, какие файлы находятся внутри каталога 2009:

ls ~/project/archive/2009

В выводе должны быть показаны следующие файлы:

august.txt  july.txt  june.txt

Для удаления всего каталога 2009 вместе со всем его содержимым используйте опцию -r с командой rm:

rm -r ~/project/archive/2009

Эта команда рекурсивно удаляет каталог и все его содержимое. Опция -r означает "рекурсивно" и сообщает команде rm, что нужно удалить каталог и все, что находится внутри него.

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

ls ~/project/archive

Теперь вы должны увидеть только следующее:

2008  2010

Каталог 2009 и все его содержимое были успешно удалены.

Важное примечание: Будьте чрезвычайно осторожны при использовании команды rm -r, особенно в сочетании с подстановочными знаками (wildcards) или при выполнении команды от имени суперпользователя (root). Ошибка при наборе команды может привести к значительным потерям данных. Некоторые системные администраторы используют опцию -i (интерактивный режим), которая запрашивает подтверждение перед удалением каждого файла, как дополнительную меру безопасности:

## Это только пример - не запускайте эту команду сейчас
## rm -ri ~/project/archive/2010

Еще одна полезная опция - -v (подробный вывод), которая показывает каждый файл при его удалении:

## Это только пример - не запускайте эту команду сейчас
## rm -rv ~/project/archive/2010

Резюме

В этом практическом занятии (лабораторной работе) вы узнали, как управлять файлами в среде Linux с помощью команды rm. Вот основные концепции, которые были рассмотрены:

  1. Базовое удаление файлов: Использование команды rm для удаления отдельных файлов.
  2. Удаление нескольких файлов: Использование подстановочных знаков (wildcards) и расширения фигурных скобок для одновременного удаления нескольких файлов.
  3. Удаление каталогов: Использование опции -r для рекурсивного удаления каталогов и их содержимого.

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

Дополнительные опции, которые могут быть полезными в вашем опыте работы с Linux:

  • rm -i: Интерактивный режим, запрашивает подтверждение перед каждым удалением.
  • rm -f: Принудительное удаление без запроса подтверждения, даже для записываемых файлов с защитой от записи.
  • rm -v: Подробный режим, объясняет, что происходит.

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