rm, unlink - удалить объекты директории
rm [-f | -i] [-dIPRrvW] file ... unlink файл
Команда
rm пробует удалить файлы, указанные в качестве аргументов командной строки, не являющиеся директориями. Если права доступа не позволяют запись, а устройством ввода (
stdin ), является терминал, у пользователю будет запрошено подтверждение удаления.
Поддерживаемые опции:
- -d
- Попытаться удалить директории, как обычные файлы.
- -f
- Не запрашивать разрешение на удаление, вне зависимости от установленных прав доступа. В случае отсутствия файла, информация об этом выведена не будет, кроме того не будет изменен код об удачном завершении операции, для информирования о неудачном завершении. Так-же данная опция отменяет любую, ранее полученную, опцию -i.
- -i
- Интерактивный режим с запросом подтверждения удаления каждого файла, вне зависимости от установленных на файл прав доступа и является-ли терминал устройством stdin. Данная опция отменяет, ранее указанную опцию -f.
- -I
- Запрос, если удалению подлежит, более 3 файлов, или перед рекурсивным удалением директории. Данная опция обеспечивает почти такой-же уровень защиты от ошибки, как опция -i, при гораздо меньшем количестве запросов подтверждений.
- -P
- Перезаписывать файлы перед удалением. Сначала файлы перезаписываются значением 0xff, затем 0x00, затем 0xff, после чего удаляются. Файлы с несколькими жёсткими ссылками не могут быть перезаписаны, ни удалены без указания опции -f, при попытке удаления, будет выведено предупреждение.
Если с данной опцией попробовать удалить файл с правами доступа "только чтение", будет выведено сообщение об ошибке а выполнение команды rm будет прервано. Файл при этом, удален или перезаписан, не будет.
- -R
- Попытаться удалить дерево каталогов, корень которого указан аргументом файл. Данная опция автоматически включает опцию -d. Если так-же указана опция -i, будут выводиться запросы на удаление содержимого каждой директории. В случае, если пользователь не подтвердил удаление директории, удаление текущего каталога будет пропущено.
- -r
- Аналог опции -R.
- -v
- Выводит дополнительную информацию при удалении файлов.
- -W
- Попытаться восстановить файлы, переданые в качестве параметров. В данный момент эта опция может быть использована только для восстановления файлов, "замазанных штрихом" ( covered by whiteouts ) в файловой системе union (см. undelete(2)).
Команда
rm удаляет символические ссылки, но сами файлы, на которые эти ссылки указывают, при этом удалены не будут.
При попытке удалить
/,
. или
.. будет выведено сообщение об ошибке.
В случае вызова команды
rm, как
unlink, может быть передан только один аргумент, который не может быть директорией. В данном режиме не могут быть переданы никакие опции, выполняется только
unlink(2) с переданным аргументом.
rm возвращает
0 в случае удачного удаления всех переданных ей каталогов и файлов. В противном случае, результат
>0.
Команда
rm использует
getopt(3) для анализа переданных ей аргументов, что позволяет ей принимать опцию
-', которая вызовет остановку обработки переданных флагов там, где эта опция встретится. Это позволяет удалять файлы, имена которых начинаются с символа минус (
- ). Например:
rm -- -filename
Того же результата можно добиться, задавая имя файла с указанием абсолютного или относительного пути. Например:
rm /home/user/-filename
rm ./-filename
Если опция
-P указывается совместно с опцией
-f, то файл будет перезаписан и удалён даже если он имеет жёсткие ссылки.
Смотри также
chflags(1), rmdir(1), undelete(2), unlink(2), fts(3), getopt(3), symlink(7)
Возможные проблемы
Опция
-P подразумевает, что нижележащая файловая система является файловой системой с фиксированными блоками (
fixed-block file system ).
UFS является такой системой, а
LFS - нет. Кроме этого, перезаписываются только обычные файлы, файлы всех остальных типов - нет.
оптимизация системы