Приветствую Вас Гость | RSS

Уже всё СкаченО

Воскресенье, 02.02.2025, 01.44.18
Главная » Статьи » Основы UNIX » Основы операционной системы UNIX

Удаление файлов
Для удаления файлов используется команда rm со следующим синтаксисом:
rm [ -firR] файл... 

При этом происходит удаление записи файла из соответствующего каталога и уменьшение на 1 количества связей в индексном дескрипторе. Если количество связей в результате становится равным 0, файл уничтожается (после его закрытия всеми открывшими процессами) - соответствующий индексный дескриптор становится свободным, и блоки данных файла также освобождаются.

Для удаления файла пользователь должен обладать правом записи в соответствующий каталог. Если нет права на запись в файл и входной поток связан с терминалом, на терминал выдаются (в восьмеричном виде) права доступа к файлу и запрашивается подтверждение; если введен ответ y - файл удаляется, иначе - нет.

Команда rm воспринимает следующие основные опции:
-f
Удаляет без запросов подтверждения все файлы, независимо от прав доступа к ним, если имеется право записи для каталога.

-i
Запрашивает подтверждения, прежде чем удалить файл. Опция -i отменяет действие опции -f; она действует даже тогда, когда стандартный входной поток не связан с терминалом.

-r
Рекурсивное удаление, с подкаталогами, в том числе, не пустыми.

-R
То же, что и опция -r.

Команда rm без опций рекурсивного удаления не удаляет каталоги. Для удаления пустых каталогов предназначена команда rmdir. Если в каталоге есть другие файлы, кроме ссылок на текущий и родительский каталог, команда rmdir его не удаляет. Эта команда имеет следующий синтаксис: 
rmdir [-p][-s] каталог... 

Команда rmdir воспринимает следующие опции:
-p
Позволяет удалить каталог и его родительские каталоги, если они - пустые. В стандартный выходной поток выдается сообщение об удалении всех указанных каталогов или о сохранении части из них по каким-либо причинам.

-s
Подавляет выдачу сообщений при использовании опции -p.

Рассмотрим ряд примеров удаления файлов и каталогов (продолжая предыдущие примеры):
[kravchuk@arturo 17:23:09 /tmp]$ ls f* d*
dogovor_trg.sql f1.txt f3.txt
dtdbcache_:0 f2.txt f5.txt

d1:
f1.txt f2.txt f3.txt

d2:
f1.txt f2.txt f3.txt
[kravchuk@arturo 17:23:17 /tmp]$ rm -r d1
[kravchuk@arturo 17:23:28 /tmp]$ rm f1.txt f2.txt
[kravchuk@arturo 17:23:47 /tmp]$ ls -l f*
lrwxrwxrwx 1 kravchuk 50 6 Мар 26 16:54 f3.txt -> f1.txt
-rw-r--r-- 1 kravchuk 50 639 Мар 26 16:55 f5.txt
[kravchuk@arturo 17:23:51 /tmp]$ mkdir d2/d3
[kravchuk@arturo 17:24:12 /tmp]$ rm d2/*
rm: d2/d3 is a directory
[kravchuk@arturo 17:24:19 /tmp]$ ls -l d2
total 8
drwxr-xr-x 2 kravchuk 50 69 Мар 26 17:24 d3
[kravchuk@arturo 17:24:26 /tmp]$ rmdir -p d2/d3
[kravchuk@arturo 17:25:24 /tmp]$ ls -l d2
d2: No such file or directory

Категория: Основы операционной системы UNIX | Добавил: Fishing (12.10.2009)
Просмотров: 323 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]