Question Comment copier un fichier sous Unix sans modifier sa dernière heure de modification?


Si je copie un fichier d’un endroit à un autre en utilisant cp, l'horodatage du fichier copié est défini sur l'heure de la copie.

Y a-t-il un moyen d'éviter cela?

Je dois copier des fichiers sans modifier leurs horodatages.


65
2018-02-27 11:13


origine




Réponses:


cp -p fait le tour Pour Linux:

-p pareil que --preserve=mode,ownership,timestamps

Pour FreeBSD:

-p Faire en sorte que cp conserve les attributs suivants de chaque fichier source dans la copie: heure de modification, heure d'accès, indicateurs de fichier, mode de fichier, ACL, ID utilisateur et ID de groupe, autorisés par les autorisations.

Et pour OS X:

-p Faire en sorte que cp conserve les attributs suivants de chaque fichier source dans la copie: heure de modification, heure d'accès, indicateurs de fichier, mode fichier, ID utilisateur et ID de groupe, autorisés par les autorisations. Les listes de contrôle d'accès (ACL) et les attributs étendus (EA), y compris les fourchettes de ressources, seront également conservés.


79
2018-02-27 11:20



cp -a est également agréable à savoir, cela implique non seulement -p, mais aussi -R pour copier des répertoires entiers et -d pour préserver les liens. - casualuser
Notez cependant que lors de l'utilisation de GNU Coreutils cp -p non seulement conserve l’horodatage mais aussi mode et propriété et sur FreeBSD Outre l'heure de modification, elle préserve également le temps d'accès, les indicateurs de fichier, le mode de fichier, la liste de contrôle d'accès, l'ID utilisateur et l'ID de groupe, autorisés par les autorisations. OS X en outre »Attributs étendus, y compris les fourchettes de ressources«. - Stefan Schmidt
sur le dernier OSX, cp -p touche toujours l'horodatage du fichier source - afathman


Il y a trois fois sur un système de fichiers Unix, le temps d'accès (atime), l'heure de modification (mtime) et l'heure de modification de l'inode (ctime). Vous pouvez modifier l'heure d'accès et l'heure de modification avec le programme tactile, par exemple

copie originale de cp
touche -r copie originale

Cependant, vous ne pouvez pas modifier l'heure de modification de l'inode.


10
2018-02-27 11:23



pour le temps de changement d'inode, voir aussi linux - Définition de la création ou modification des horodatages - Débordement de la pile - sdaau


En utilisant cp du GNU Coreutils, pour ne conserver que les horodatages et non les attributs tels que l’ID utilisateur, l’ID de groupe ou le mode fichier, --preserve ce qui permet de spécifier explicitement une liste d'attributs à conserver.

cp --preserve=timestamps source destination

Sachez cependant que cette syntaxe n'est probablement pas prise en charge sur les autres Unices. Une alternative pourrait être d'utiliser le --times paramètre de rsync qui devrait être disponible sur la plupart des installations.


7
2018-06-09 15:45



C'est la bonne réponse. En utilisant -p n'est pas la bonne réponse. -p conserve également la propriété et le mode. Ce qui peut ne pas être voulu .. et n'a pas été demandé en question. - bshea


J'ai récemment eu besoin de faire quelque chose de similaire mais en utilisant un lien symbolique à la place. Pour créer un lien symbolique et conserver l'horodatage d'origine: cp -ps src_file dst_symlink


1
2017-07-21 16:57