Usate la funzione utime() documentata in perlfunc/utime. A titolo di
esempio, ecco un piccolo programma che copia gli istanti di lettura e
scrittura dal suo primo argomento a tutti i restanti.
if (@ARGV < 2) {
die "usate: cptimes file_del_timestamp altri_file ...\n";
}
$timestamp = shift;
($atime, $mtime) = (stat($timestamp))[8,9];
utime $atime, $mtime, @ARGV;
Il controllo degli errori è, al solito, lasciato come esercizio per
il lettore.
Per utime, perldoc ha anche un esempio che ha lo stesso effetto di touch(1)
sui che esistono già.
Alcuni filesystem hanno una limitata abilità di immagazzinare gli
istanti di un file al livello di precisione che ci si aspetta. Per esempio,
i filsystem FAT e HPFS non sono in grado di creare le date sui file con una
granularità più fine di due secondi. Questa è una
limitazione dei filesystem, non di utime().
[1] Con il termine 'timestamp' si intende in generale l'orario di qualcosa:
in questo caso, come viene spiegato nel testo della FAQ, l'orario di accesso,
scrittura o modifica dei metadati, NdT
|