BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: hd дамп каталога
СообщениеДобавлено: Пн 26 июн, 2017 7:39 pm 
Не в сети

Зарегистрирован: Пн 26 июн, 2017 7:30 pm
Сообщения: 3
Добрый день всем, не большая просьба точнее вопрос: как при помощи hd, od ...(возможно какого ни будь hex редактора) продемонстрировать взаимосвязь inod-ов и имени файла в каталоге,вспоминая ту прописную истину, что местом хранения имени файла каталог как раз и является, в s5fs соответствие «очевидное», а вот в ufs как «думается» соответствия определены с блоками данных ....прав или не прав не знаю, буду благодарен объяснению или ссылке «где почитать», заранее спасибо!
Код:
 # uname
FreeBSD
# df -T
Filesystem   Type  1K-blocks    Used    Avail Capacity  Mounted on
/dev/da0s1a  ufs    31479228 4502316 24458576    16%    /
........
# ls -i
1148387 file1   1148388 file2   1148389 file3
# hd -d .
00000000  e2 85 11 00 0c 00 04 01  2e 00 00 00 1e 57 0b 00  |.............W..|
0000000   34274   00017   00012   00260   00046   00000   22302   00011
00000010  0c 00 04 02 2e 2e 00 00  e3 85 11 00 10 00 08 05  |................|
0000010   00012   00516   11822   00000   34275   00017   00016   01288
00000020  66 69 6c 65 31 00 ff ff  e4 85 11 00 10 00 08 05  |file1...........|
0000020   26982   25964   00049   65535   34276   00017   00016   01288
00000030  66 69 6c 65 32 00 ff ff  e5 85 11 00 c8 01 08 05  |file2...........|
0000030   26982   25964   00050   65535   34277   00017   00456   01288
00000040  66 69 6c 65 33 00 ff ff  00 00 00 00 00 00 00 00  |file3...........|
0000040   26982   25964   00051   65535   00000   00000   00000   00000
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0000050   00000   00000   00000   00000   00000   00000   00000   00000
*
0000200
# hd -x .
00000000  e2 85 11 00 0c 00 04 01  2e 00 00 00 1e 57 0b 00  |.............W..|
0000000    85e2    0011    000c    0104    002e    0000    571e    000b
00000010  0c 00 04 02 2e 2e 00 00  e3 85 11 00 10 00 08 05  |................|
0000010    000c    0204    2e2e    0000    85e3    0011    0010    0508
00000020  66 69 6c 65 31 00 ff ff  e4 85 11 00 10 00 08 05  |file1...........|
0000020    6966    656c    0031    ffff    85e4    0011    0010    0508
00000030  66 69 6c 65 32 00 ff ff  e5 85 11 00 c8 01 08 05  |file2...........|
0000030    6966    656c    0032    ffff    85e5    0011    01c8    0508
00000040  66 69 6c 65 33 00 ff ff  00 00 00 00 00 00 00 00  |file3...........|
0000040    6966    656c    0033    ffff    0000    0000    0000    0000
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0000050    0000    0000    0000    0000    0000    0000    0000    0000
*
0000200
#


PS: было бы здорово пояснит какая колонка в выводе, ....что означает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: hd дамп каталога
СообщениеДобавлено: Пн 26 июн, 2017 10:26 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5190
Откуда: Москва
Если правильно вас понял, /usr/include/sys/dirent.h:

Код:
struct dirent {
    __uint32_t d_fileno;        /* file number of entry */
    __uint16_t d_reclen;        /* length of this record */
    __uint8_t  d_type;      /* file type, see below */
    __uint8_t  d_namlen;        /* length of string in d_name */
#if __BSD_VISIBLE
#define MAXNAMLEN   255
    char    d_name[MAXNAMLEN + 1];  /* name must be no longer than this */
#else
    char    d_name[255 + 1];    /* name must be no longer than this */
#endif
};


Код:
                                            ,----------------- d_fileno (1148387)
                                           /        ,--------- d_reclen (16)
                                          /        /    ,----- d_type (8 = DT_REG)
                                         /        /    /  ,--- d_namlen (5)
                                   vvvvvvvvvvv vvvvv vv vv
00000010  0c 00 04 02 2e 2e 00 00 [e3 85 11 00 10 00 08 05  |................|
00000020  66 69 6c 65 31 00 ff ff] e4 85 11 00 10 00 08 05  |file1...........|
          ^^^^^^^^^^^^^^ ^^^^^^^^
                 \           `-------------------------------- padding
                  `------------------------------------------- d_name


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: hd дамп каталога
СообщениеДобавлено: Пн 26 июн, 2017 10:47 pm 
Не в сети

Зарегистрирован: Пн 26 июн, 2017 7:30 pm
Сообщения: 3
Спасибо большое! struct dirent это мой пробел в "образовании"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: hd дамп каталога
СообщениеДобавлено: Вт 27 июн, 2017 5:08 pm 
Не в сети

Зарегистрирован: Пн 26 июн, 2017 7:30 pm
Сообщения: 3
Можно проще:
Код:
$ ls -i
1148387 file1   1148388 file2   1148389 file3
$ hd .
00000000  e2 85 11 00 0c 00 04 01  2e 00 00 00 1e 57 0b 00  |.............W..|
00000010  0c 00 04 02 2e 2e 00 00  e3 85 11 00 10 00 08 05  |................|
00000020  66 69 6c 65 31 00 ff ff  e4 85 11 00 10 00 08 05  |file1...........|
00000030  66 69 6c 65 32 00 ff ff  e5 85 11 00 c8 01 08 05  |file2...........|
00000040  66 69 6c 65 33 00 ff ff  00 00 00 00 00 00 00 00  |file3...........|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200
$ od -ix .
0000000           1148386        17039372              46          743198
             85e2    0011    000c    0104    002e    0000    571e    000b
0000020          33816588           11822         1148387        84410384
             000c    0204    2e2e    0000    85e3    0011    0010    0508
0000040        1701603686          -65487         1148388        84410384
             6966    656c    0031    ffff    85e4    0011    0010    0508
0000060        1701603686          -65486         1148389        84410824
             6966    656c    0032    ffff    85e5    0011    01c8    0508
0000100        1701603686          -65485               0               0
             6966    656c    0033    ffff    0000    0000    0000    0000
0000120                 0               0               0               0
             0000    0000    0000    0000    0000    0000    0000    0000
*
0001000
$


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика