Puoi usare il touch
comando insieme al -r
passare per applicare gli attributi di un altro file a un file.
NOTA: Non esiste una data di creazione in Unix, ci sono solo accesso, modifica e cambiamento. Consulta questa domanda e risposta di U&L intitolata:ottieni l'età del file specificato per ulteriori dettagli.
$ touch -r goldenfile newfile
Esempio
A scopo esemplificativo ecco un goldenfile
che è stato creato con un timestamp arbitrario.
$ touch -d 20120101 goldenfile
$ ls -l goldenfile
-rw-rw-r--. 1 saml saml 0 Jan 1 2012 goldenfile
Ora creo un nuovo file:
$ touch newfile
$ ls -l newfile
-rw-rw-r--. 1 saml saml 0 Mar 7 09:06 newfile
Ora applica goldenfile
attributi di newfile
.
$ touch -r goldenfile newfile
$ ls -l goldenfile newfile
-rw-rw-r--. 1 saml saml 0 Jan 1 2012 newfile
-rw-rw-r--. 1 saml saml 0 Jan 1 2012 goldenfile
Ora newfile
ha gli stessi attributi.
Modifica tramite Samba
Ho appena confermato che sono in grado di farlo utilizzando il mio laptop Fedora 19 che include la versione 1.16.3-2 collegata a un NAS Thecus N12000 (utilizza una versione modificata di CentOS 5.x).
Sono stato in grado di toccare un file come ho detto sopra e ha funzionato come ho descritto. Il tuo problema è probabilmente un problema con le opzioni di montaggio utilizzate, che potrebbero omettere il tracciamento di determinati attributi temporali, o forse è correlato a uno di questi bug:
- Bug 461505 - impossibile impostare il timestamp sulle condivisioni samba
- Bug 693491 - Impossibile impostare attributi/timestamp sulla condivisione CIFS/Samba
Il modo più semplice:l'accesso modificato sarà lo stesso:
touch -a -m -t 201512180130.09 fileName.ext
Dove:
-a = accessed
-m = modified
-t = timestamp - use [[CC]YY]MMDDhhmm[.ss] time format
Se desideri utilizzare NOW
rilascia semplicemente il t
e il timestamp
Per verificare che siano tutti uguali:stat fileName.ext
Vedi:tocca l'uomo