rm — удаление файлов и каталогов
Команда rm используется для удаления (remove) файлов и каталогов, например:
rm элемент...
где элемент — это один или несколько файлов или каталогов.
В табл. 4.8 и 4.9 перечислены некоторые параметры, наиболее часто используемые с командой rm.
Таблица 4.8. Параметры команды rm
Параметр
Значение
-i, --interactive
Запрашивать у пользователя подтверждение перед удалением существующего файла. Если этот параметр отсутствует, команда rm просто удалит существующие файлы
-r, --recursive
Рекурсивно удалить каталоги. То есть вместе с каталогом будут удалены все его подкаталоги. Это обязательный параметр при удалении каталогов
-f, --force
Игнорировать отсутствующие файлы и не запрашивать подтверждения. Этот параметр отменяет действие параметра --interactive
-v, --verbose
Выводить информационные сообщения в процессе удаления
будьте осторожны с командой rm!
Unix-подобные операционные системы, такие как Linux, не имеют команды, отменяющей удаление. Если вы что-то удалили командой rm, это исчезнет навсегда. Linux считает вас достаточно ответственным человеком, отдающим себе отчет в своих действиях.
Будьте особенно осторожны с групповыми символами. Рассмотрим следующий классический пример. Допустим, вы захотели удалить все файлы HTML в каталоге. Для этого вы вводите команду:
rm *.html
которая сделает именно то, что вам нужно, но если вы случайно вставите пробел между * и .html, как в следующей команде:
rm * .html
rm удалит все файлы в каталоге и затем сообщит, что не нашла файла .html.
Полезный совет: всякий раз, используя групповые символы с командой rm (помимо внимательной проверки ввода!), проверьте сначала аргумент с групповым символом с командой ls. Это позволит увидеть, какие файлы будут удалены. Затем нажмите клавишу со стрелкой вверх, чтобы восстановить команду из истории, и замените ls на rm.
Таблица 4.9. Примеры использования команды rm
Команда
Результат
rm file1
Просто удалит файл file1
rm -i file1
Перед удалением file1 запросит подтверждение у пользователя
rm -r file1 dir1
Удалит файл file1 и каталог dir1 со всем его содержимым
rm -rf file1 dir1
То же, что и выше, но в отсутствие file1 и/или dir1 просто продолжит работу, не выводя никаких сообщений