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
Сообщения: 5237
Откуда: Москва
Если правильно вас понял, /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], Google Feedfetcher


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

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