Почему файловая система unix не сохраняет время создания файла?

Есть ли историческая причина? Stat хранит последнее время, последнее измененное время и последнее измененное время, но не время создания! Разве это не важная информация.

Я не понимаю, почему разработчики оставили бы такую ​​важную информацию. Некоторые файловые системы хранят данные, как указано в этом вопросе . Но, очевидно, важность этой информации преувеличена. Почему это так?

Заметка:

 stat -c %W <filename> 

Возвращает 0 в моей системе (fedora 22).

2 Solutions collect form web for “Почему файловая система unix не сохраняет время создания файла?”

Современные файловые системы сохраняют время создания файлового объекта. Одна из причин, почему это не было сделано ранее, вероятно, не имело никакого консенсуса относительно того, какое время создания файла должно быть, т. Е. Когда был создан файловый объект (inode) или содержимое файла (данные) и что делать, когда файл восстанавливается из резервной копии.

Исторический ответ, конечно, состоит в том, что он изначально не хранили время создания, и никто не чувствовал себя вынужденным добавить эту новую функцию.

Есть веская причина не хранить время создания, а это то, что это очень плохое понятие. Если система отслеживала какое-то время и называла это «временем создания», было бы много случаев, когда это не было бы полезным временем.

Многие приложения сохраняют файл, сначала записывая во временный файл, а затем переименовывая файл, чтобы перезаписать старый. Этот подход предпочтительнее перезаписывать файл на месте, потому что, если приложение или система вылетают во время записи файла, это только оставляет временный файл вокруг, тогда как метод перезаписи оставляет сломанный файл на месте. Но этот подход означает, что если вы определяете время создания файла в качестве даты, когда файл был фактически создан, то большинство файлов данных имели бы время создания, такое же, как и время их модификации, или только часть секунды в прошлом. Таким образом, время создания не предоставило никакой информации.

Это можно было бы изменить, потребовав, чтобы приложение каким-то образом заявляло, что новый файл на самом деле является новой версией старого файла и поэтому должен наследовать его время создания. Но это потребует большой сложности, в отличие от традиционных временных меток (изменение содержимого, доступ и изменение inode), которые могут быть автоматически обновлены (при каждой записи, при каждом чтении, при каждом изменении метаданных).

Существуют и другие случаи, когда время создания является спорным. Когда вы копируете файл с сохраненными метаданными ( cp -p , rsync -a , …), вы создаете копию или копируете файл, включая время его создания? Когда вы восстанавливаете файл из резервной копии, следует ли восстановить время создания или время восстановления?

Если вы хотите сделать время создания файла значимым, введите его под управлением версиями. Затем вы можете определить время создания как время первой фиксации, которая включает файл, и эта информация будет записана и сохранена.

  • Храните файл для всех пользователей в группе.
  • Удалите текст из файла и сохраните, не открывая
  • Сортировка файлов в каталогах, названных префиксом файла
  • Дублировать файл x раз в командной оболочке
  • Сжатие всех файлов, содержащих определенную строку
  • Как узнать, имеет ли файл CAP_NET_ADMIN?
  • Как определить, сколько файлов находится в каталоге без учета?
  • Можно ли сжимать очень большой файл (~ 30 ГБ) с помощью gzip?
  • Как получить последний файл из списка файлов в определенном каталоге
  • Объединение двух файлов
  • Получить все имена файлов в каталоге, созданном до даты ввода
  • Interesting Posts

    Как я могу подключиться к жесткому диску с таблицей разделов GPT, используя raspberry pi rssbian?

    Можете ли вы просмотреть файл устройства?

    dnf установить завершение не работает с zsh, но работает с bash

    NFS Server – VFS: достигнут максимальный лимит файлов

    Изящно обрабатывать проигрывание экспортированного X-дисплея

    В vim, как отобразить «command-right» и «command-left» до начала строки и конца строки на mac?

    Добавьте мигающий значок сетевого монитора в GNOME / XFCE

    Команда работает в сценарии (или -c), но не при непосредственном запуске (в интерактивной оболочке)

    Как настроить несколько серверов NIS для клиентов CentOS 6?

    Webmin прекратил открытие

    Просмотрите изменения в .tex-файлах

    Как включить правый щелчок на рабочем столе? (Linux Mint 12 LXDE)

    можно заморозить процесс в Linux и перезагрузить или выключить компьютер. Затем продолжайте процесс, который был заморожен?

    подозрительная активность на сервере?

    Существуют ли какие-либо файлы конфигурации editline, чтобы заставить его действовать больше как readline?

    Linux и Unix - лучшая ОС в мире.