Risposte:
cp -p
fa il trucco. Per Linux :
-p
uguale a--preserve=mode,ownership,timestamps
-p
Causa cp per preservare i seguenti attributi di ciascun file sorgente nella copia: ora modifica, ora accesso, flag file, modalità file, ACL, ID utente e ID gruppo, come consentito dalle autorizzazioni.
E per OS X :
-p
Fare in modo che cp mantenga i seguenti attributi di ciascun file sorgente nella copia: ora modifica, ora accesso, flag file, modalità file, ID utente e ID gruppo, come consentito dalle autorizzazioni. Verranno inoltre conservati gli elenchi di controllo di accesso (ACL) e gli attributi estesi (EA), inclusi i fork di risorse.
cp -p
non solo conserva il timestamp ma anche la modalità e la proprietà e su FreeBSD oltre al tempo di modifica conserva anche il tempo di accesso, flag di file, modalità file, ACL, ID utente e ID gruppo, come consentito mediante autorizzazioni. «e su OS X in aggiunta» Attributi estesi, inclusi fork di risorse «.
Quando si utilizza cp
da GNU Coreutils , per conservare solo i timestamp e non gli attributi come ID utente, ID gruppo o modalità file, è presente il longhand --preserve
che consente di specificare esplicitamente un elenco di attributi da conservare.
cp --preserve=timestamps source destination
Tuttavia, tieni presente che questa sintassi probabilmente non è supportata su altri Unices. Un'alternativa potrebbe essere quella di utilizzare il --times
parametro di rsync
cui dovrebbe essere disponibile sulla maggior parte delle installazioni.
-p
non è la risposta corretta. -p
mantiene anche la proprietà e la modalità. Che non può essere voluto .. e non è stato chiesto in questione.
Ci sono tre volte su un filesystem Unix, il tempo di accesso (atime), il tempo di modifica (mtime) e il tempo di cambio dell'inode (ctime). Ad esempio, è possibile modificare il tempo di accesso e il tempo di modifica con il programma touch
cp orig copy toccare -r orig copia
Tuttavia, non è possibile modificare il tempo di cambio dell'inode.
Di recente ho dovuto fare qualcosa di simile ma usando invece symlink. Per creare un collegamento simbolico e conservare il timestamp originale:cp -ps src_file dst_symlink