команда rm в Linux с примерами

Опубликовано: 16 Февраля, 2022

rm здесь означает удалить . Команда rm используется для удаления таких объектов, как файлы, каталоги, символические ссылки и т. д. из файловой системы, такой как UNIX. Чтобы быть более точным, rm удаляет ссылки на объекты из файловой системы, где эти объекты могли иметь несколько ссылок (например, файл с двумя разными именами). По умолчанию каталоги не удаляются.

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

Синтаксис:

rm [ОПЦИЯ] ... ФАЙЛ ...

Рассмотрим 5 файлов с именами a.txt, b.txt и так далее до e.txt .

$ ls
a.txt b.txt c.txt d.txt e.txt
Удаление одного файла за раз
$ rm a.txt

$ ls
b.txt c.txt d.txt e.txt

Удаление более одного файла за раз
$ rm b.txt c.txt

$ ls
d.txt e.txt

Примечание: rm не производит никаких выходных данных, поскольку обычно он генерирует сообщения только в случае ошибки.

Параметры:

1. -i (Интерактивное удаление): как и в cp, опция -i заставляет команду запрашивать у пользователя подтверждение перед удалением каждого файла, вы должны нажимать y для подтверждения удаления, любая другая клавиша оставляет файл не удаленным.

$ rm -i d.txt
rm: удалить обычный пустой файл d.txt? у

$ ls
e.txt

2. -f (Принудительное удаление): rm запрашивает подтверждение удаления, если файл защищен от записи . Параметр -f отменяет эту незначительную защиту и принудительно удаляет файл.

$ ls -l
всего 0
-r - r - r - + 1 Пользователь Пользователь 0 2 января 22:56 e.txt

$ rm e.txt
rm: удалить обычный пустой файл e.txt, защищенный от записи? п

$ ls
e.txt

$ rm -f e.txt

$ ls


Примечание. Параметр -f команды rm не работает для каталогов с защитой от записи.

3. -r (Рекурсивное удаление):
с параметром -r (или -R) команда rm выполняет обход дерева и рекурсивно удаляет все файлы и подкаталоги родительского каталога. На каждом этапе он удаляет все, что находит. Обычно rm не удаляет каталоги, но при использовании с этой опцией удаляет.

Ниже представлено дерево каталогов и файлов:

$ ls
А

$ cd A

$ ls
до н.э

$ ls B
a.txt b.txt

$ ls C
c.txt d.txt

Теперь удаление из каталога A (как родительского каталога) будет выполняться следующим образом:

$ rm *
rm: невозможно удалить 'B': это каталог
rm: невозможно удалить 'C': это каталог

$ rm -r *

$ ls


Каждый каталог и файл внутри каталога A удаляются.

4. –version: этот параметр используется для отображения версии rm, которая в настоящее время работает в вашей системе.

$ rm --version
rm (GNU coreutils) 8.26
Упаковано Cygwin (8.26-2)
Авторское право (C) 2016 Free Software Foundation, Inc.
Лицензия GPLv3 +: GNU GPL версии 3 или новее.
Это бесплатное программное обеспечение: вы можете изменять и распространять его.
НИКАКИХ ГАРАНТИЙ в той степени, в которой это разрешено законом.

Авторы Пол Рубин, Дэвид Маккензи, Ричард М. Столмен,
и Джим Мейеринг.

Приложения wc Command

Удалить файл, имя которого начинается с символа дефиса (-): Чтобы удалить файл, имя которого начинается с дефиса («-»), вы можете указать двойной дефис («-») отдельно перед именем файла. Это дополнительное тире необходимо для того, чтобы rm не неправильно интерпретировала имя файла как параметр. Допустим, это имя файла -file.txt , чтобы удалить этот файл, запишите команду как:

$ ls
-file.txt

$ rm -file.txt
rm: неизвестный вариант - l
Попробуйте 'rm ./-file.txt', чтобы удалить файл '-file.txt'.
Для получения дополнительной информации попробуйте 'rm --help'.

$ rm - -file.txt

$ ls