Бывают случаи, когда вам нужно удалить файлы в терминале 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