GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Cp perd les métadonnées du fichier ?

J'ai un NAS Asustor qui tourne sous Linux; Je ne sais pas quelle distribution ils utilisent.

Je peux m'y connecter en utilisant SSH et utiliser toutes les commandes Shell. Le volume interne utilise ext2 et les disques durs USB externes utilisent NTFS.

Lorsque j'essaie d'utiliser cp pour copier n'importe quel fichier, les métadonnées de date de ce fichier sont remplacées par la date et l'heure actuelles.

Par exemple, si j'utilise Windows pour copier le fichier depuis SMB et que le fichier a été modifié en 2007, le nouveau fichier est marqué comme créé maintenant en 2017 mais modifié en 2007. Mais avec Linux cp commande sa date de modification est également changée en 2017.

Cette date de modification est très pertinente pour moi car elle me permet de trier les fichiers sur Windows Explorer en fonction de leur date de modification. S'il est remplacé, je ne peux pas trier et ils semblent tous avoir été créés maintenant. J'utilise également la date de modification pour savoir quand j'ai acquis certains anciens fichiers rares.

Existe-t-il un paramètre que je peux utiliser dans cp commande pour conserver les métadonnées du fichier d'origine ?

Mise à jour :j'ai essayé cp --preserve=timestamps mais ça n'a pas marché, ça a imprimé :

cp: unrecognized option '--preserve=timestamps'
BusyBox v1.19.3 (2017-03-22 17:23:49 CST) multi-call binary.

Usage: cp [OPTIONS] SOURCE DEST

Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY

        -a      Same as -dpR
        -R,-r   Recurse
        -d,-P   Preserve symlinks (default if -R)
        -L      Follow all symlinks
        -H      Follow symlinks on command line
        -p      Preserve file attributes if possible
        -f      Overwrite
        -i      Prompt before overwrite
        -l,-s   Create (sym)links

Si j'essaie juste -p il dit cp: can't preserve permissions of '...': Operation not permitted , mais d'après ce que j'ai pu tester, les horodatages sont conservés.

Réponse acceptée :

Si vous utilisez man cp pour lire la page de manuel de la commande de copie, vous trouverez le -p and --preserve drapeaux.

-p identique à --preserve=mode,ownership,timestamps

et

--preserve[=ATTR_LIST] conserver les attributs spécifiés (par défaut :mode,ownership,timestamps ), si possible des attributs supplémentaires :context , links , xattr , all

Cela revient à dire que vous devez utiliser cp -p au lieu de simplement cp .


Linux
  1. Comment déplacer un fichier sous Linux

  2. Bases des autorisations de fichiers Linux

  3. Linux - Tout est un fichier ?

  4. Comment renommer un fichier sous Linux ?

  5. Commande wc Linux

Commande Gunzip sous Linux

Commande Stat sous Linux

Qu'est-ce qu'umask sous Linux ?

Comment créer un lien symbolique vers un fichier sous Linux

Extraire le fichier tar.gz sous Linux

Qu'est-ce qu'un fichier .bashrc sous Linux ?