Санкт-Петербургский государственный политехнический университет
Факультет технической кибернетики
Кафедра автоматики и вычислительной техники
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 2
Дисциплина: системное программное обеспечение
Тема: файловая система
Выполнил ст. группы 4081/1: Хромов И.Б
Преподаватель Душутина Е.В
Санкт-Петербург
2009
1.
Используя команду ls получим информацию о всех возможных типах файлов ФС. Результат
поместим в выходной файл. Для этого нам необходимо просканировать все файлы ФС командой ls -l -R /. Здесь -R - рекурсивный просмотр всех файлов начиная с указанной папки. Начинаем мы с корневой папки, поэтому в конце стоит знак /. Далее нам необходимо из получившегося списка выделить первую колонку, соответствующую типу файла. Это делается командой cut -c 1.получившуюся колонку отсортируем командой sort и с помощью команды uniq уберём повторяющиеся символы. Оформим это с применением конвейера. Результат выполнения команды перенаправим в выходной файл types.txt. Саму команду запишем в файл types.sh. Команда будет выглядеть так:
ls -l -R / | cut -c 1 | sort | uniq > types.txt.
В результате выполнения в выходном файле появится столбец из символов, соответствующих всем типам файлов, найденным в ФС. В конце присутствует символ t. Он не имеет отношения к типам файлов, просто команда ls в каждой директории выводит сначала строку total N, где N - количество занимаемых директорией блоков памяти по 512 кб. Отсюда и буква t. Содержимое файла types.txt приведено ниже.
-
/
b
c
d
l
n
s
t
2.
Создадим каталог с именем 1, а в нем создадим файл f.txt. С помощью команды ln в родительском каталоге создадим ссылку на этот файл с именем link: ln f.txt ../link. Воспользуемся тем, что все жесткие ссылки на файл имеют один идентификатор. Создадим скрипт, который в нашем каталоге найдёт все жесткие ссылки на выбранный файл. Создадим файл links.sh, содержимое которого приведено ниже
echo -n enter file name:
read f
vr=`ls -i -1 -R | grep $f | cut -c 1-9 `
echo links:
ls -i -l -R | grep -e $vr -e /
1я строка выводит надпись enter file name
2я строка: сохранение введённого значения в переменную f
3я строка: в переменную vr заносится идентификатор указанного файла
4я строка выыодит строку links:
5я строка выводит на экран все файлы с полученным идентификатором с указанием каталога
# ./links.sh
enter file name:f.txt
links:
19038036 -rwxrwxr-x 2 root root 2 Nov 04 17:55 link
./1:
19038036 -rwxrwxr-x 2 root root 2 Nov 04 17:55 f.txt
./2:
./2/1:
3.
Для поиска файлов используется команда find. Найдём все файлы в системе с именем f.txt.
Выполним команду find / -name f.txt -print. В результате получим следующее:
# find / -name f.txt
/home/Xromov/2/1/f.txt
Рассмотрим некоторые опции команды find. Например, для поиска файлов указанного типа используется флаг -type t, где t - тип искомых файлов. Для примера введём команды find -type d и find -type f. На экране соответственно появляется список директорий в текущем каталоге и обычных файлов соответственно. Флаг -empty совершает поиск пустых файлов в указанной директории (с учётом всех вложенных папок): find .. -empty. Для того, чтобы указать количество уровней вложенности для поиска, используется флаг -level n, где n - уровень вложенности. Так, команда
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.