Gdzie są zapisane „data ostatniej modyfikacji” i „data ostatniego dostępu”?

4

Tytuł mówi wszystko. Gdzie są wymienione daty (i inny plik meta dane) zapisane?

Czy są częścią pliku, czy są oddzielone? Jeśli mam plik, zmodyfikuj go, aby zawartość pozostała taka sama (usuń literę, a następnie wpisz ją ponownie) ... zmieniając datę modyfikacji. Czy te dwa wynikowe pliki są dokładnie takie same, jak w przypadku zawartości (binarnej)?

Rook
źródło

Odpowiedzi:

7

Oba znaczniki czasu są oddzielone od zawartości pliku. Są one przechowywane wraz z innymi metadanymi w i-węzeł (większość systemów plików Unix) lub odpowiednik Windows - wpis pliku w „główna tabela plików” . Ogólnie rzecz biorąc, jest to bardzo specyficzne dla używanego systemu plików - FAT i ext4 i btrfs a NTFS robi to zupełnie inaczej.

Czas modyfikacji w systemie Windows jest aktualizowany podczas zamykania pliku, jeśli co najmniej jeden bajt został zmodyfikowany. To, czy nowe dane są takie same lub różne, nie ma znaczenia, o ile wywołano WriteFile () lub powiązaną funkcję; nowa zawartość może być nawet dokładnym dopasowaniem.

Czas dostępu jest aktualizowany po zamknięciu pliku po otwarciu do odczytu lub zapisu - nawet jeśli nie został zmodyfikowany w żaden sposób. (Wyklucza to odczyty metadanych, ponieważ metadane znajdują się poza plikiem. W systemie Windows programy do tworzenia kopii zapasowych mogą również zażądać, aby atime pozostało niezmodyfikowane). czas modyfikacji (Linux relatime ) lub tylko wtedy, gdy stare atime było wcześniej niż godzinę wcześniej (starszy Windows) lub nie zaktualizowane w ogóle (nowszy Windows).

grawity
źródło