Удаление файлов и каталогов

Команда: rm

Формат: rm[флаги]file…

Действие: команда удаляет один или более файлов из каталога. Файлы может удалять только пользователь, имеющий право записи в данный каталог. Разрешения на чтение/запись собственно файла не требуется

Флаги: допускаются три флага:

· f – отменяет режим запроса подтверждения;

· r – рекурсивное удаление всего содержимого данного каталога, а затем самого каталога (если в качестве аргумента команды задано имя каталога, то выдается сообщение об ошибки, при наличии -r содержимое рекурсивно удаляется);

· i(интерактивный режим) – запрашивается подтверждение у пользователя перед удалением каждого файла.

Пример

1. Удаление файлов file1 file2 file3, а затем отмена удаления file1.

$ rm -i file[1-3]

file1: n -(no – нет)

file2: y -(yes – да)

file3: y -(yes – да)

2. Удаление всех файлов в каталоге texts и удаление каталога texts.

$ rm –r /usr/group1/user1/texts/*

$ rmdir /usr/group1/user1/texts

Другое решение:

$ rm –r /usr/group1/user1/texts

Примечание 1

Восстановить уничтоженный файл в ОС UNIX невозможно.

Примечание 2

Ввиду того, что под шаблон «.*» подходит каталог «..», никогда не делайте команды rm -r . * .

 

Установка и изменение режима доступа к файлу

Команда: chmod(change mode)

Формат: chmod mode file

где mode –код защиты

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

Код защиты: код защиты modeможет быть задан в числовом (в восьмеричной системе) или символьном виде

 

Числовой код защиты применяется, если необходимо установить полный код защиты файла. В этом случае невозможно установить одни права доступа без изменения остальных. Восьмеричный код защиты представляет собой число из нескольких (от одной до четырех) восьмеричных цифр, каждая из которых представляет три бита. Биты обозначают следующие права доступа:

· 4000 – разрешение смены идентификатора пользователя;

· 2000 – разрешение смены идентификатора группы;

· 1000 – сохранение образа файла в области выгрузки после

отсоединения от него всех процессов;

· 0400 – разрешение чтения владельцу файла;

· 0200 – разрешение записи владельцу файла;

· 0100 – разрешение выполнения владельцу файла;

· 0070 – разрешение чтения, записи и выполнения группе;

· 0007 – разрешение чтения, записи и выполнения прочим

пользователям.

Символьная форма позволяет установить выборочные биты кода защиты и имеет вид:

[ugoa] [+ =] [rwxstugo], где

· u – владелец;

· g–группа;

· o–прочие;

· a–все категории пользователей (по умолчанию);

· + – разрешить доступ;

· – запретить доступ;

· =– назначить доступ;

· r– чтение;

· w – запись;

· x – выполнение;

· s – смена идентификатора пользователя или группы;

· t – сохранение образа файла в области выгрузки;

· ugo–оставить текущие значения бита доступа.

Пример

1. Установка режима доступа к файлам f1,f2,f3.

$ chmod 644 f1 f2 f3 (где 644 соответствует rw-r--r---)

2. Изменение режима доступа к файлам f1,f2,f3.

$ ls -l

-r-- --- --- ... f1

-r-- --- --- ... f2

-r-- --- --- ... f3

$ chmod a=r, u+w f1 f2 f3

или (эквивалентный вариант изменения прав доступа)

$ chmod u=rw, go=r f1 f2 f3

$ ls -l

-rw- r-- r-- ... f1

-rw- r-- r-- ... f2

-rw- r-- r-- ... f3

$ chmod o-r f1 f2 f3

$ ls -l

-rw- r-- --- ... f1

-rw- r-- --- ... f2

-rw- r-- --- ... f3

(другие пользователи, не входящие в группу, потеряли право читать файлы)

 

Контрольные вопросы

1. Назовите основные компоненты и свойства ОСUNIX.

2. Какой символ в UNIX служит приглашением к работе?

3. Какие возможности предусмотрены в ОСUNIX для исправления ошибок при наборе текста команд?

4. Каким образом можно остановить выполнение команды?

5. Какая команда выдает информацию о состоянии процесса?

6. Опишите действие команды kill.

7. Опишите формат команд в системе UNIX.

8. С помощью какой процедуры можно направить результаты команды в некоторый файл (вместо вывода на терминал)?

9. С помощью какой процедуры можно направить данные некоторой команде не с вашего терминала, а из другого источника?

10. Можно ли направить данные от одной команды к другой, не пользуясь временным файлом? Если да, то как называется эта процедура и как ее вызвать?

11. Каково значение символов *, ?, [ ] в именах файлов и каталогов?

12. Какой тип файловой системы используется в UNIX? Дайте ее определение.

13. Назовите соглашения по наименованию каталогов и файлов в ОС UNIX?

14. Какие три уровня прав доступа по чтению и записи существуют в UNIX? Как они обозначаются?

15. Определите действие каждой из следующих команд: ls, mv, cd, mkdir, rmdir.

16. Если вы забыли свое положение в файловой системе, каким образом вы определите, где находитесь?

17. Как вы можете узнать каталог по имени файла?

18. Опишите действие каждой из следующих команд: >, cat, mv, cp, rm.

19. Укажите результаты следующих команд:

· cat file file2;

· cat file1 file2 > file3;

· cat file4.

20. Что представляет собой команда установки и изменения режима доступа к файлам? Зачем вам может понадобиться ее использовать?

21. Опишите результаты следующих команд:

· chmod 755 file1;

· chmod 664 file2;

· chmod 700 file1.

Практическая часть

1. Войдите в систему UNIX.

2. Посмотреть рабочий каталог.

3. Посмотрите дату и информацию о работающих пользователях. Команды задать в одной строке.

4. Даны команды подсчета числа пользователей и числа файлов в текущем каталоге:

1) $ who > temp 2) $ ls > temp

$ wc –l < temp $ wc –l < temp

Пересмотреть эти команды с точки зрения использования программных каналов вместо временных файлов.

5. В каталоге userX (X – номер компьютера) составьте следующее дерево каталогов

,

где X – номер вашего компьютера.

6. Просмотреть содержимое собственного каталога (userX). При просмотре использовать различные флаги.

7. Удалить каталог К4.

8. Переименовать каталоги: К5 в К11, К6 в К12, К7 в К31, К8 в К32, К9 в К121.

9. В каталоге К2 создать два содержательных файла объёмом 5 – 10 строк с произвольным именем.

10. Просмотреть содержимое этих файлов командой cat.

11. Переместить файлы в каталог К9.

12. Сделать конкатенацию файлов и направить результат в файл file3 в том же каталоге.

13. Просмотреть файл file3.

14. Скопировать файл file3 в остальные каталоги.

15. Удалить каталог К1 со всем его содержимым с помощью команды rmr.

16. Переименовать файл file3 в file1.

17. Изменить режим доступа к файлу file1(например, разрешить изменение файла всем пользователям).

18. Удалить файл file1 из каталога К2.

19. Удалить оставшиеся каталоги и файлы.


Лабораторная работа №6