Где хранятся свойства файла в реальной файловой системе?

Я создаю программу, которая берет hexdump файла, поэтому я могу передать это где-то и восстановить файл, но hexdump является только содержимым файла, мне также нужно получить свойства файла, поэтому, где я могу получить свойства этого файла, а затем применить их к новому файлу, который я создаю из этого hexdump? Я использую bash для этого, но это не совсем о коде, но больше о том, где его найти, хотя вы можете о коде, потому что, очевидно, мне понадобятся некоторые команды. Я запускаю Ubuntu GNOME 15.04 с GNOME Shell и GNOME 3.16.

1
задан 23 August 2015 в 14:45

1 ответ

Это может быть не полный ответ, но это то, что я смог найти в своих исследованиях.

Атрибуты файлов хранятся в inodes, а таблицы «inode» обычно разбросаны по всему файловая система. В общем, чтобы найти, где у вас есть таблицы inode (по крайней мере, в файловой системе ext3), вы можете запустить:

sudo dumpe2fs /dev/<device> | fgrep 'Inode table'

, и вы можете сделать hexdump необработанных данных в блоке, где inodes (Примечание: я не пробовал эту команду!):

sudo dd if=/dev/<device> ibs=4096 skip=<inode block> count=1 | hexdump

Замените <device> и <inode block> смещением блока на таблицу индексного дескриптора, на которую вы хотите посмотреть.

источник: LinuxQuestions, SO question

2
ответ дан 23 May 2018 в 18:00
  • 1
    Я поддержал этот ответ, однако, поскольку он не полностью отвечает на мой вопрос, я не могу его принять. – Paranoid Panda 23 August 2015 в 16:55
  • 2
    Это может помочь вам дать более полный ответ: ext4.wiki.kernel.org/index.php/Main_Page – Paranoid Panda 23 August 2015 в 17:05
  • 3
    @ParanoidPanda Да, я понимаю :) Спасибо за ссылку. дай мне посмотреть, смогу ли я обнять его. Между тем, как хорошо что-то вроде stat -c '%A %h %U %G %s %y %n' <yourfile> для вас? Существует также e2image, который может сохранять dumpe2fs читаемые метаданные, но угадать, что он будет работать только на всей файловой системе – Ron 23 August 2015 в 20:01
  • 4
    Это неплохо, но мне нужна вся информация, которую моя система имеет на нем, а затем мне также нужны инструкции о том, как применять эти атрибуты к файлу в новой системе, потому что я беру hexdump и помещаю его в новую систему , но поскольку hexdump является только содержимым файла, я также не получаю атрибуты, поэтому, если вы можете показать мне, как их получить, было бы очень хорошо, если бы вы могли показать мне, как связать их с новым файлом на новой системы. Вы видите, что это потому, что я сейчас изучаю алгоритмы сжатия и должен также иметь возможность получать атрибуты файла, а затем применять их. – Paranoid Panda 23 August 2015 в 20:08
  • 5
    какую еще информацию вы ищите? Если вы посмотрите man stat, вы увидите, что stat дает почти все, что вам нужно. – Ron 23 August 2015 в 21:06

Другие вопросы по тегам:

Похожие вопросы: