4
  1. В Linux информация о файле или каталоге хранится в его inode. Мне было интересно, какова структура данных для информации о файле или каталоге в Windows 7?
  2. Как получить информацию о файле или каталоге в Linux и в Windows 7, в терминале и окне командной строки?
  3. Владелец файла или каталога всегда является его создателем? Сможет ли он измениться?
  4. Существует ли метка времени создания файла в Linux и в Windows 7? Как получить его?

Спасибо и всего наилучшего!

2 ответа2

3

Я не знаю о Windows 7, но постараюсь ответить на части Linux.

  1. Правда, кроме имени файла.
  2. Утилита stat(1) может получить всю информацию об индексе. Сопровождающий системный вызов, stat(2) может быть использован в ваших программах.
  3. Нет, владелец файла или каталога может быть изменен в любой момент, см. chown(8). Смотрите также липкий бит.
  4. Нет, в Linux отметка времени создания не сохраняется. См. Системный вызов stat(2) , в частности определение struct stat . Доступны время последнего доступа (st_atimespec), время модификации (st_mtimespec) и время модификации данных inode (st_ctimespec).
2

В Linux информация о файле или каталоге хранится в его inode. Мне было интересно, какова структура данных для информации о файле или каталоге в Windows 7?

В обеих операционных системах это зависит от того, какая файловая система используется.

Windows по умолчанию использует NTFS, у которой есть "списки атрибутов" в таблице основных файлов. Есть некоторая документация в Википедии, на NTFS.com и Linux NTFS.

Старая файловая система FAT32 (все еще часто используемая на съемных дисках) намного проще и хранит все в одной таблице размещения файлов.

Как получить информацию о файле или каталоге в Linux и в Windows 7, в терминале и окне командной строки?

В Linux используйте команду stat .

В Windows PowerShell используйте System.Io.FileInfo.

В Windows cmd.exe вы должны использовать либо внешние инструменты, либо связываться с dir .

Владелец файла или каталога всегда является его создателем? Сможет ли он измениться?

  • В Windows NT (включая XP, 2003, Vista, 7 и будущие версии) вновь созданные объекты 1 являются собственностью их создателя, если только кто-то другой не станет владельцем. (Администраторы могут сделать это, используя привилегию SeTakeOwnership ; пользователи, не являющиеся администраторами, могут стать владельцами, если ACL объекта позволяет это.)

    • В серверных выпусках Windows NT администраторы могут назначать владение объектом другому пользователю. Потребительские выпуски (такие как Windows XP или 7) разрешают брать на себя ответственность только за себя.

    • В Windows 2000 и более ранних версиях, если создатель является членом группы «Администраторы», созданные им объекты будут принадлежать администраторам, а не пользователю. Это изменилось в Windows XP, где пользователь всегда будет владеть объектами, которые он создает.

    • Файловые системы FAT не поддерживают владение файлами.

  • Все [править] Unix системы используют создатель файла в качестве его владельца.

    • root может использовать chown для смены владельца.

Существует ли метка времени создания файла в Linux и в Windows 7? Как получить его?

  • В Windows и FAT32, и NTFS хранят метку времени создания. В cmd.exe , dir /tc покажет это.

  • UFS2 во FreeBSD хранит время создания как st_birthtime.

  • В Linux время создания поддерживается некоторыми файловыми системами (ntfs, возможно, ext4), но пока не самой ОС. (Команда stat уже показывает время рождения, если поддерживается системным вызовом с тем же именем.)

Примечание. В Windows и FreeBSD время создания легко изменить.


1 Это относится ко многим другим типам объектов Windows NT, не ограничиваясь файлами. Примеры: именованные каналы, ключи реестра, процессы, службы, рабочие столы, устройства, мьютексы ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .