Comment puis-je copier récursivement des fichiers sans écraser les autorisations existantes?


9

Lorsque je copie des fichiers d'un répertoire à un autre, les autorisations de répertoire sont réinitialisées (par exemple: de 0755 à 0775), ce qui provoque des problèmes, me forçant à revenir en arrière et à réinitialiser manuellement les autorisations de répertoire. Je fais actuellementcp -r /source/directory /destination/directory

Je veux copier tous les fichiers et les nouveaux répertoires, mais pas remplacer les autorisations des répertoires existants.

Réponses:


5

Pour conserver les liens que vous pouvez utiliser cp( page de manuel pour cp ) avec le -ddrapeau, qui est équivalent à --no-dereference --preserve=links.

Pour combiner cela avec les indicateurs -pet, -Rvous pouvez utiliser l'indicateur d'archive -a.


7

Ajouter un indicateur -p

cp -pR /source/dir /dest/dir

De man cp:

-p     same as --preserve=mode,ownership,timestamps

2

Mon ~/.bashrca été modifié pour contenir

alias cp='cp -i --preserve=all'

Cela signifie que lorsque j'utilise cp, il demandera également avant d'écraser ( -i), et préservera tout (c'est-à-dire le mode, la propriété, les horodatages; et si possible des attributs supplémentaires: contexte, liens, xattr).

Vous pouvez toujours le remplacer par juste modeau lieu de allsi vous le souhaitez, mais j'aime bien avoir cet alias pour changer les valeurs par défaut de cp.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.