Cosa conta come modifica o cambiamento del file?


Risposte:


9

La ridenominazione aggiorna l'ora di modifica:

$ mkdir tmp
$ cd tmp

$ echo abc > a
$ stat a
  File: `a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 26h/38d Inode: 5038682     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000 /  zelda   Gid: ( 1000/   zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:06:58.981107444 +0100
 Birth: -

$ mv a b
$ stat b
  File: `b'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 26h/38d Inode: 5038682     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/  zelda)   Gid: ( 1000/   zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:07:14.893238472 +0100
 Birth: -

Il tempo di accesso viene aggiornato durante la lettura del contenuto di un file. Modifica quando aggiorni effettivamente il file (l'apertura per la modifica non è sufficiente per cambiare l'ora di modifica).


Copiare un file e incollare cambia il suo tempo di "modifica" sul nuovo file? L'uso di Ctrl + X e l'incollaggio cambiano il tempo di "modifica"?

1
Una copia crea un nuovo file con Modifica, Accedi e Cambia con un nuovo valore (lo stesso). Incollare qualcosa in un editor (e quindi salvare) aggiorna tutti e tre (Cambia con un timestamp successivo rispetto agli altri due, ovviamente solo dopo aver salvato)
Zelda,

Intendevo usare CTRL + x sul file e CTRL + v da qualche altra parte.

Questo sta usando gli strumenti da riga di comando cpe mv, e viper la modifica. Altri editor o il desktop potrebbero gestire l'attività in modo diverso e avere più timestamp aggiornati.
Zelda,

Ad esempio, Nautilus non aggiorna Access e Modify usando Ctrl + X, quindi Ctrl + V, solo Change è diverso, comemv
Zelda,

9

Una modifica che influisce sul mtime del file è una modifica dei dati del file: una scrittura di una quantità di byte diversa da zero o un troncamento che finisce per modificare il file. La creazione di un file imposta anche il suo mtime sulla data corrente. La semplice apertura di un file per la scrittura non influisce sul mtime, supponendo che il file non sia stato creato o troncato.

La lettura da un file (se viene letto un numero diverso da zero) o l'esecuzione di un file imposta il suo tempo sull'ora corrente. L'apertura di un file per la lettura non influisce mai sull'atime. Su Linux, questo è ora disabilitato di default nella maggior parte dei casi; l' atimeopzione mount ripristina gli aggiornamenti atime, mentre l' noatimeopzione mount li disabilita completamente.

I programmi possono cambiare il mtime e il tempo di un file; il comando di base per farlo è touch. Alcuni programmi di copia file impostano la copia sullo stesso mtime dell'originale, ad esempio cp -poppure rsync -t.

Una modifica che influenza il ctime del file è una modifica dei metadati del file: permessi, proprietario, orari, conteggio dei collegamenti, ecc. Rinominare un file aggiorna anche il suo ctime. Le modifiche ai dati del file influiscono anche sul tempo di trasmissione, ma la lettura da un file non modifica il tempo di trasmissione, anche se cambia il tempo. È impossibile cambiare l'ora in modo diverso dall'impostazione dell'ora corrente (anche il root è vincolato, ma root può indirettamente impostare l'ora in tempo cambiando prima l'ora di sistema o accedendo direttamente alla partizione contenente il filesystem).


1

Un'ulteriore osservazione empirica non menzionata dalle altre risposte:

L'apertura del file per la scrittura con O_TRUNCmodifica il mtime anche se il file era originariamente vuoto.

Questo sembra essere il caso almeno su ext3 su Linux 3.10.

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.