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

0000000000   q   w   e   r   t   y   u   i   o   p   a   s   d   f   g   h

0000000020   j   k   l   z   x   c   v   b   n   m   q   w   e   r   t   y

0000000040   u   i   o   p  \n

0000000045

Выведем в символьном варианте, пропустив первые 4 символа.

$ echo "qwertyuiopasdfghjklzxcvbnmqwertyuiop" | od -tc -j4

0000000004   t   y   u   i   o   p   a   s   d   f   g   h   j   k   l   z

0000000024   x   c   v   b   n   m   q   w   e   r   t   y   u   i   o   p

0000000044  \n

0000000045

Выведем в символьном варианте только 5 первых символов.

$ echo "qwertyuiopasdfghjklzxcvbnmqwertyuiop" | od -tc -N5

0000000000   q   w   e   r   t

0000000006

Выведем в шестнадцатиричном варианте по байту.

$ echo "qwertyuiopasdfghjklzxcvbnmqwertyuiop" | od -tx1

0000000000 71 77 65 72 74 79 75 69 6f 70 61 73 64 66 67 68

0000000020 6a 6b 6c 7a 78 63 76 62 6e 6d 71 77 65 72 74 79

0000000040 75 69 6f 70 0a

0000000045

Выведем с десятичными адресами.

$ echo "qwertyuiopasdfghjklzxcvbnmqwertyuiop" | od -Ad

000000000 16231273561 15135274564 16330270157 15031663144

000000016 17233065552 14235461570 16734266556 17135071145

000000032 16033664565 14235400012

000000037

Применим утилиту od к каталогу.

Будем выводить информацию в десятичном варианте, чтобы были видны inode, выводимые для содержимого каталога.

$ cd directory

$ od -td .

0000000000 0000199611 0000000000 0000000032 0000000000

0000000020 0000065560 1601372206 0000206782 0000000000

0000000040 0000000064 0000000000 0000131096 0000011822

0000000060 0000192436 0000000000 0000000096 0000000000

0000000100 0000458784 1601660270 0007498084 1949197056

0000000120

Получим inode подкаталога. Видим, что по смещению 0..060 именно он и указан, за ним идет информация об имени.

$ ls -i .

 192436 new_dir

$ cd ..

Получим inode анализируемого каталога. Видим, что по смещению 0..00 указан он.

$ ls -i .

 199611 directory                       206786 log_file2.txt

 206784 files_types                     206792 od_analyze

 206785 find_hl                         206795 od_file1.txt

 206791 for_copy.txt                    206794 od_file2.txt

 206788 for_links1.txt                  206787 rezultatu.txt

 206788 for_links11.txt

 206789 for_links2.txt

Проанализируем inode вышележащего каталога, он указан в строке по смещению 0..20.

$ cd ..

$ ls -i

 215126 for_links1.txt                  206782 lab2

 206788 for_links12.txt

 206760 lab1

Таким образом, в каталоге содержится информация: сначала о самом себе с указанием inode, затем о вышележащем каталоге также с указанием inode, затем о подкаталоге с его inode.

Приведем скрипт, выполняющий элементарные операции с каталогом и сравнивающий его содержимое до и после выполнения этих операций (содержимое будем анализировать утилитой od, а сравнивать будем, используя утилиту diff).

#lab 2

#zadanie 4

#pered zapyskom tekushii katalog d.b. tot, v kotorom bydet cozdana directoria

mkdir directory

od -td directory > od_file1.txt

echo "Directory created."

cp for_copy.txt ./directory/for_copy_c.txt

od -td directory > od_file2.txt

echo "\n File copied. \n Difference:"

diff od_file1.txt od_file2.txt

mv ./directory/for_copy_c.txt ./directory/file.txt

od -td directory > od_file1.txt

echo "\n File renamed. \n Difference:"

diff od_file2.txt od_file1.txt

rm ./directory/file.txt