J'ai un gros dossier «X» dans mon répertoire personnel et une copie obsolète de celui-ci sur un lecteur flash - Y. De quoi est l'analogue rm Y; cp X Y
, mais sans écraser les fichiers déjà existants?
23
Il y a beaucoup plus de propriétés à rsync que ne le mentionne la réponse précédente. Vous devriez les examiner vous-même:
man rsync
Mais pour votre problème, je suggère:
rsync -a --delete X Y
De cette façon, le récepteur (Y) supprimera tout fichier dont il dispose qui n'est pas dans X. Assurez-vous cependant de bien le faire. Utilisé incorrectement car root peut facilement tuer votre système ... :)
rsync -a --delete X/ Y
. Cette petite barre oblique après que X l'ait fait fonctionner comme prévu pour moi, donc cela pourrait aussi aider les autres. Expliqué ici: abbeyworkshop.com/howto/unix/nix_rsync/index.htmlJetez un œil à rsync (1) . Il est destiné à faire à peu près exactement ce que vous voulez.
Il prend en charge la copie à distance, via son propre protocole ou ssh, mais il peut également être utilisé localement.
Selon le comportement exact que vous souhaitez, vous pouvez également passer l'
--update
option. Cela indiquera à rsync de ne pas écraser les fichiers qui existent déjà sur la cible et sont plus récents que ceux de la source.Si vous souhaitez supprimer des fichiers supplémentaires (c'est-à-dire des fichiers qui existent en Y mais pas en X), vous pouvez ajouter l'
--delete
option.la source
rm Y; cp X Y
le faisant.Essayez d'utiliser rsnyc, éventuellement avec la commande suivante:
-u
= ne pas écraser un fichier à destination, s'il est modifiéla source
rm Y; cp X Y
le faisant.Je pense que certaines des fonctionnalités que vous recherchez dans l'option -u (mise à jour) existent réellement dans cette option:
"--ignore-existing" - sauter la mise à jour des fichiers qui existent sur le récepteur
la source