Вы находитесь на странице: 1из 8

Отчет №3

Трушин Никита Михайлович 11-910


Операционные Системы
Задания
1. Вывести только имена файлов (без пути), на которые указывают
ссылки в /etc/alternatives. Дубликаты убрать.
2. Допустим, программа записывает на винчестер on-line радио. Иногда
связь рвётся и поток записи подвисает. Вам нужно избавиться от таких
файлов. Найти все файлы в каталоге и его подкаталогах, имеющие
расширение .mp3 или .ogg и содержащие в своём пути слова incomplete,
к которым не было обращений в течении получаса и удалить их.
3. Найти и сохранить в файл список директорий, сокетов и обычных
файлов, доступных на запись вашему пользователю и не лежащих при
этом в его домашнем каталоге. Ошибки доступа сохранить в отдельный
файл
4. Найти все файлы в /etc, в которых встречается ваш логин в
НЕзакомментированной символом # строке и вывести имя файла,
найденную строку и две следующие за ней строки.
5. Узнайте, какой каталог в вашей системе имеет самую большую степень
вложенности в другие директории
6. Вывести имена 10 самых больших файлов каталога, к которым было
доступ в этом году
Задание 1

readlink – команда, печатающая значение символьной ссылки или


каноническое имя файла. Флаг –f получает имя файла.

С помощью find находим в каталоге /etc/alternatives/ все ссылки (-type l), для
каждой через -exec получаем файл, на который указывает ссылка с помощью
команды readlink –f , переворачиваем строки, режем по /, выбираем первый
«столбец» (а это у нас будет перевернутое название файла), затем снова
переворачиваем, сортируем, убираем дубликаты.
Задание 2

С помощью команды find ищем в директории record файлы, с


расширением .mp3 или .ogg (-iname ‘*.mp3’ –o –iname ‘*.ogg’), где –о это
оператор ИЛИ. Также, у файла в пути должен быть каталог incomplete (-path
‘*/incomplete/*’), и вдобавок к этому файлу в последний раз был совершен
доступ не менее чем 30 минут назад (-amin +30). После этого в ехес
запускаем команду rm, которая удаляет эти файлы.
Задание 3

При помощи команды find, ищем директории, обычные файлы и сокеты


(-type d,s,f), не лежащие в домашнем каталоге (-not -path ‘/home/*’), в которые
может кто-либо записывать(в том числе и мы), и выводим список в файл
task3.txt. Ошибки выводятся в task3err.txt.
Задание 4

При помощи команды grep в каталоге etc рекурсивно (-r) ищем строки, не
содержащие в начале #, т.е. не закомментированные. Затем, передаем их во
второй grep, где уже ищем строку содержащую в себе ‘nick’ и выводим эту и
две последующие строки. Имя файла выводится перед началом каждой
строки, так что профит. Вот пример вывода:
Задание 5

При помощи команды du мы начиная с корневого каталога выводим все


директории со степенью вложенности 100 или меньше, ошибки скидывая
в /dev/null. Затем, при помощи awk(утилиты обработки и фильтрации текста),
мы зададим разделитель /, выведем степень глубины каждого каталога (‘print
NF-1’), отсортируем и выведем только уникальные. NF – это число столбцов,
на которое делится строка по разделителю. Так мы узнаем максимальную
степень вложенности каталога. В моем случае это 13. Теперь нам надо найти
этот каталог. Найдем мы его с помощью следующей команды:

Здесь мы опять пользуем du, выводим директори со степенью вложенности


100 или меньше. А вот использование awk немного изменилось – теперь в
нём находится условие, по которому если число разделов(NF) равно 13, то
мы выводим эту строку. Так у меня и получилось найти каталоги с самой
высокой степенью вложенности.
Задание 6

При помощи команды find ищем в домашнем каталоге обычные файлы, к


которым был доступ в течении последнего года, затем через ехес запускаем
du для получения их размера, ошибки скидывая в /dev/null. После этого
сортируем строки от большего к меньшему по размеру файла, выводим
первые 10, переворачиваем, обрезаем, выводим только имя, снова
переворачиваем.

Вам также может понравиться