Изучение принципов организации файловой системы ОС UNIX на примере QNX, страница 8

Видно, что inode совпадают, а значит была создана именно жесткая ссылка.

Пример создания символической ссылки с помощью утилиты ln –s будет приведен позже.

Утилиту link можно использовать для создания жестких ссылок.

Inode совпадают, жесткие ссылки созданы.

Ниже приведен скрипт для поиска всех символических ссылок на заданный файл.

#lab 2

#zadanie 9

#argument - iskomui fail

echo "chto ishem:"

n="-> $1"

echo "$n"

i=1

echo "kolichestvo ssulok:"

numb=`ls -lRi /home/mary | grep -F -e '->' | grep -c -F -e $1`

echo $numb

echo "vse inode dlya ssulok:"

s=`ls -lRi /home/mary | grep -F -e '->' | grep -F -e $1 | cut -c1-8`

echo $s

echo "polnui pyt k kajdoi ssulke po ee inode:"

#inod1=`echo $s | cut -f $numb -d" "`

while [ $i -le $numb ]

do

inod1=`echo $s | cut -f $i -d" "`

echo $inod1

find /home/mary -inode $inod1

let "i=$i+1"

done

Результаты выполнения:

$ sh find_symb_l for_symb_l.txt

chto ishem:

-> for_symb_l.txt

kolichestvo ssulok:

3

vse inode dlya ssulok:

222079 215127 206797

polnui pyt k kajdoi ssulke po ee inode:

222079

/home/mary/for_symb_l3.txt

215127

/home/mary/labs/for_symb_l2.txt

206797

/home/mary/labs/lab2/for_symb_l1.txt

$ pwd

/home/mary/labs/lab2

$ cd ..

$ cd ..

$ pwd

/home/mary

$ ln -s labs/lab2/for_symb_l.txt for_symb_l4.txt

$ sh find_symb_l for_symb_l.txt

chto ishem:

-> for_symb_l.txt

kolichestvo ssulok:

4

vse inode dlya ssulok:

222079 222080 215127 206797

polnui pyt k kajdoi ssulke po ee inode:

222079

/home/mary/for_symb_l3.txt

222080

/home/mary/for_symb_l4.txt

215127

/home/mary/labs/for_symb_l2.txt

206797

/home/mary/labs/lab2/for_symb_l1.txt

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

Утилита file позволяет получить информацию о типе файла: она сканирует начало файла и пытается определить его тип.

Есть три типа тестов: это тест файловой системы, тест магических чисел и тест языка. Все они применяются в указанном порядке, результат выдает первый успешно закончившийся тест.

Тест файловой системы сначала проверяет, пуст ли файл и не является ли он каким-нибудь типом специального файла.

Тест магических чисел сравнивает данные анализируемого файла со стандартными примерами данных: это так называемые магические числа, определения которых по умолчанию хранятся в /usr/share/misc/magic (можно изменить). Если на основании этого теста не делается вывода о том, что это бинарный исполняемый файл, то делается заключение, что это текстовый файл (ASCII). В этом случае утилита пытается определить его язык по стандартным конструкциям (например, программа на С).

$ file shluz.c

shluz.c: ASCII C program text

$ file shluzProg

shluzProg: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically

 linked (uses shared libs), 0 bytes lazy stack, 4096 bytes preallocated stack, n

ot stripped

Вывод информации о версии программы.

$ file -v

file-4.21

magic file from /usr/share/misc/magic

Выполненная с флагом –f утилита берет названия файлов для анализа из заданного файла.