Найти тему

Команда 'rm'

Оглавление

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

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

$ rm file

Узнаем больше про rm

Чтобы узнать больше про команду rm, можно воспользоваться ключом —help.

$ rm --help
Использование: 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 пояснять производимые действия
...

Удаление одного файла.

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

rm <filename>
# ls
dir1 dir2 dir3 file1 file2 file3 file4 file5
# rm file3
rm: удалить пустой обычный файл 'file3'? y
# ls
dir1 dir2 dir3 file1 file2 file4 file5

Удаление нескольких файлов.

Для удаления нескольких файлов вам нужно всего лишь добавить имена файлов через пробел:

# rm file1 file2 file4
rm: удалить пустой обычный файл 'file1'? y
rm: удалить пустой обычный файл 'file2'? y
rm: удалить пустой обычный файл 'file4'? y
# ls
dir1 dir2 dir3 file5

Если вы хотите удалить все файлы с одинаковым расширением, вы можете использовать * в качестве заполнителя. Например, чтобы удалить все файлы «.txt»:

# rm *.txt

Аналогично, чтобы удалить все файлы (с расширением) в каталоге, вы можете использовать:

# rm *.*

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

Для удаления пустого каталога вы можете использовать опцию -d или команду rmdir:

# rm -d <Пустая_Директория>

или

# rmdir <Пустая_Директория>

Для удаления непустого каталога, используется опция -r. Это также приведет к удалению всех файлов в папке.

# rm -r <Имя_Каталога>

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

# rm -r *

Удаление в интерактивном режиме.

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

# rm -i <имя_файла>

Как только вы выполните вышеуказанную команду, система попросит вас нажать Y или N, чтобы подтвердить свой выбор. В некоторых дистрибутивах эта функция включена по умолчанию и указывать ее не обязательно.

Если вы удаляете более трех файлов с помощью команды rm, используйте опцию -I:

# rm -I file1 file2 file3
rm: remove 3 arguments?

или

# rm -I *.txt

Получить сообщение после удаления файлов.

С опцией -v команда rm показывает, что делает команда:

# rm -v file3
удалён 'file3'

Вы можете использовать опцию -v и -i для интерактивного удаления файлов:

# rm -vi file4
rm: удалить пустой обычный файл 'file4'? y
удалён 'file4'

Удалить файл принудительно

Опция -f отменяет любую второстепенную защиту файла, защищенного от записи, и удаляет его принудительно.

# rm -f file5

Вы можете объединить это с опцией -r, чтобы принудительно удалить каталог и его подпапки.

Примечание. Параметр -rf в сочетании с sudo может быть опасной командой, которая может удалить любые/все файлы и папки в системе. Используйте его осторожно.

Удалить файл, начинающийся с тире (-)

Если вы попытаетесь удалить файл, в имени которого есть тире, вы можете получить сообщение об ошибке.

$ sudo rm -file1
rm: неверный ключ — «l»
Попробуйте «rm ./-file1», чтобы удалить файл '-file1'.
По команде «rm --help» можно получить дополнительную информацию.

Чтобы устранить вышеуказанную ошибку, используйте двойное тире (–), которое работает как инструкция «конец параметров» для команды в Linux:

$ sudo rm -v -- -file1
удалён '-file1'

Объедините Rm с командой Xargs.

Вы можете объединить команду rm с командой xargs в Linux, чтобы эффективно удалить множество файлов. Например, можно удалить файлы, перечисленные в файле info.txt:

$ sudo xargs rm < info.txt