Linux, Unix, Windows ... Il tempo di accesso / modifica è relativo al tempo di sistema?


2

Ho cercato, ma non riesco a trovare la terminologia corretta.

Ad esempio, se oggi era venerdì e un file è stato modificato mercoledì, quindi quando cambio l'ora di sistema a sabato, l'ora del file rimane mercoledì o cambia a giovedì?

Come si applica ad altri sistemi operativi?


Sotto Linux dovrebbe rimanere con la data in cui lo hai creato / modificato, nonostante il fatto che potresti aver cambiato l'ora del tuo sistema. In alcuni casi potresti ricevere avvisi che il file è stato modificato in futuro, ad esempio durante la compilazione di un kernel.
Carlspring,

2
Penso che ponderare le implicazioni del fatto che i timestamp dei file non siano tempi assoluti (indipendentemente dal fuso orario) porterebbe rapidamente alla conclusione che i timestamp non possono essere memorizzati come tempi relativi - ciò significherebbe che, ad ogni tick dell'orologio, il sistema avrebbe aggiornare tutti i relativi timestamp memorizzati sul disco (di nuovo) ...
twalberg,

@twalberg - Ho dovuto leggere di nuovo la domanda per capire la tua risposta. Pensavo che l'OP stesse parlando di fusi orari . Penso che la tua interpretazione riguardi il fatto che l'orologio venga effettivamente aggiornato, sia con il suo stesso ticchettio, sia che venga regolato manualmente. Quindi sì, anche questo ha senso. TUTTAVIA - questa non è ancora una buona domanda per SO
Matt Johnson-Pint,

@MattJohnson Concordato ... È anche possibile che abbia letto qualcosa nella domanda ...
twalberg,

@MattJohnson Grazie per averlo spostato nel forum corretto. Questa è solo la mia seconda domanda. Ho un'applicazione di database che dipende dall'ora di creazione dei file e non ero sicuro che l'ora sul server fosse corretta. Volevo sapere se ci fossero implicazioni nel cambiare l'ora del sistema, ma non avrebbe davvero senso memorizzare l'ora in modo relativo. Era solo una di quelle cose che mi sarebbero sembrate ovvie, ma che avrei potuto causare grossi problemi se mi sbagliavo.
aomimezura,

Risposte:


2

L'ora di sistema è un orologio gestito dal kernel. Quando si aggiorna un file, l'ora corrente del file viene aggiornata all'ora corrente del kernel. Gli orari dei film sono in UTC, come secondi nell'epoca (dal 1 gennaio 1970). (questo non è esattamente come fa Windows - questo è Linux / UNIX)

Quindi puoi giocherellare con l'ora del sistema e impostarlo all'indietro. Puoi ottenere date future sui file, --- alcuni file system meno recenti non "apprezzano" questo. Pertanto, la modifica dell'orologio di sistema non altera in alcun modo i tempi di file esistenti. Solo usando i comandi che aggiornano i tempi touchdei file come o effettivamente alterano il file o i metadati del file, lo fanno.

Puoi anche ottenere date future sui file abusando di chiamate di sistema utime()e comandi simili touch.

Questo è un sistema a 32 bit e il comando touch ha causato problemi utilizzando una data oltre l'aritmetica della data a 32 bit. Il numero di secondi UTC era troppo grande.

jmcnama@SNEDAP03 ~> ls -l t.lis
-rw-r--r--   1 jmcnama  other         68 Jun  4 10:17 t.lis


jmcnama@SNEDAP03 ~> touch -t 2099010100 t.lis
jmcnama@SNEDAP03 ~> ls -l t.lis
-rw-r--r--   1 jmcnama  other         68 Mar  1  2028 t.lis

1

Fornisci maggiori dettagli sulla piattaforma che stai utilizzando, in particolare il sistema operativo e il file system.

Per quanto riguarda Linux, molto probabilmente sarà memorizzato come un timestamp UTC (vedi la risposta di Jim).

Su Windows, se stai usando NTFS, troverai un comportamento simile a quello di Linux in quanto il timestamp si basa su UTC. Ma usano tempi di epoche diverse . Se archiviato come intero su Linux, 0significa 1/1/1970. Ma su Windows, 0significa 1/1/1601.

Se si utilizza FAT o FAT32 su Windows, fare attenzione che i tempi dei file non si basano su UTC, ma sul fuso orario locale del computer che lo ha registrato. Ciò significa che può esserci ambiguità attorno alle date di transizione dell'ora legale e, se si modifica il fuso orario o si portano i file su un computer in un fuso orario diverso (forse su una chiave USB formattata FAT32, ad esempio) che i tempi saranno interpretato come se fossero in quel fuso orario.

Puoi leggere di più sulle specifiche di Windows qui .

In ogni caso, il ticchettio dell'orologio o la regolazione manuale dell'orologio non influiranno in alcun modo sui timestamp dei file registrati. Interesserà solo i timestamp di nuovi file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.