В Linux команда rm
(remove) используется для удаления файлов. Они удаляются навсегда поэтому следует соблюдать осторожность и желательно иметь резервные копии.
Содержание
Синтаксис
rm [ПАРАМЕТР]… [ФАЙЛ]…
Опции
- -f, --force
- Игнорировать несуществующие файлы и аргументы, ни о чём не спрашивать
- -i
- Запрашивать подтверждение перед каждым удалением
- -I
- Запрашивать подтверждение один раз перед удалением более трёх файлов или перед рекурсивным удалением; не так назойливо, как с
-i
, но всё же защищает от большинства ошибок - --interactive[=КОГДА]
- Запрашивать подтверждение в соответствии с КОГДА:
never
(никогда),once
(-I
, один раз) илиalways
(-i
, всегда); если КОГДА не задано — запрашивать всегда - --one-file-system
- При рекурсивном удалении дерева, пропускать все каталоги, находящиеся не на той же файловой системе, что и соответствующий аргумент командной строки
- --no-preserve-root
- Не обрабатывать
/
особым образом - --preserve-root[=all]
- Не удалять
/
(по умолчанию); при указанииall
отвергать любой аргумент командной строки на отдельном устройстве от его родителя - -r, -R, --recursive
- Рекурсивно удалять каталоги и их содержимое
- -d, --dir
- Удалять пустые каталоги
- -v, --verbose
- Пояснять производимые действия
По умолчанию каталоги не удаляются. Используйте параметр --recursive
(-r
или -R
), чтобы удалить все перечисленные каталоги вместе с их содержимым.
Для удаления файла, начинающегося с -
(например: -foo
), используйте одну из следующих команд:
rm -- -foo
rm ./-foo
Заметим, что при использовании утилиты для удаления файла, обычно, его содержимое можно восстановить, имея соответствующий опыт и время.
Примеры использования в Linux команды rm
Удаление файла
В каталоге Directory
был создан файл examle
:
oleg@mobile:~/Directory:$ ls -l
итого 0
-rw-r--r-- 1 oleg users 0 июл 21 15:21 exmample
Для удаления файла команде опции не нужны:
oleg@mobile:~/Directory:$ rm exmample
Результат:
oleg@mobile:~/Directory:$ ls -l
итого 0
Удаление нескольких файлов
В этом же каталоге были созданы файлы example_1
, example_2
, example_3
:
oleg@mobile:~/Directory:$ touch example_1 example_2 example_3
oleg@mobile:~/Directory:$ ls -l
итого 0
-rw-r--r-- 1 oleg users 0 июл 21 15:29 example_1
-rw-r--r-- 1 oleg users 0 июл 21 15:29 example_2
-rw-r--r-- 1 oleg users 0 июл 21 15:29 example_3
Для удаления файлов их можно просто перечислить:
oleg@mobile:~/Directory:$ rm example_1 example_2 example_3
Результат:
oleg@mobile:~/Directory:$ ls -l
итого 0
Интерактивное удаление файла
Если вы хотите получать запрос на подтверждение удаления файла, то используйте опцию -i
:
oleg@mobile:~/Directory:$ rm -i example
rm: удалить пустой обычный файл 'example'? y
При запросе подтверждения вводите y
для удаления файла, либо n
для прерывания выполнения команды.
Удаление защищённого файла
В каталоге Directory
создан файл example
, защищённый от записи:
oleg@mobile:~/Directory:$ ls -l
итого 0
-r--r--r-- 1 oleg users 0 июл 21 15:42 example
Пробуем удалить:
oleg@mobile:~/Directory:$ rm example
rm: удалить защищённый от записи пустой обычный файл 'example'? y
В любом дистрибутиве Linux команда запросит подтверждения на удаление, но с опцией -f
файл удаляется без предупреждения:
oleg@mobile:~/Directory:$ rm -f example
Результат:
oleg@mobile:~/Directory:$ ls -l
итого 0
Удаление каталога
Команда может использоваться для рекурсивного удаления каталога и его содержимого:
oleg@mobile:~:$ rm -r Directory
Удаление содержимого каталога
Для удаления содержимого каталога команда используется с подстановочным символом *
:
oleg@mobile:~/Directory:$ rm *
Удаление пустого каталога
Для удаления пустого каталога команда используется с опцией -d
:
oleg@mobile:~:$ rm -d Directory
Использование подстановочных символов
В качестве примера были созданы несколько файлов:
oleg@mobile:~/Directory:$ ls -l
итого 0
-rw-r--r-- 1 oleg users 0 июл 21 16:18 example_1.txt
-rw-r--r-- 1 oleg users 0 июл 21 16:18 example_2.txt
-rw-r--r-- 1 oleg users 0 июл 21 16:18 example_3.txt
-rw-r--r-- 1 oleg users 0 июл 21 16:18 linux_example_1
-rw-r--r-- 1 oleg users 0 июл 21 16:18 linux_example_2
-rw-r--r-- 1 oleg users 0 июл 21 16:18 linux_example_3
В данном примере файлы, имена которых оканчиваются на .txt
, удаляются следующим образом:
oleg@mobile:~/Directory:$ rm *.txt
Файлы, имена которых начинаются с linux
, удаляются так:
oleg@mobile:~/Directory:$ rm linux*
Заключение
Команда Linux rm
является одной из базовых утилит. Она позволяет вам удалять файлы и каталоги. В этой статье мы рассмотрели некоторые титичные примеры.