Réponses:
Je voudrais essayer,
rsync -a /from/file /dest/file
vous pouvez utiliser d' autres options comme --append
, -P (--partial --progress)
. Voir man rsync pour plus d'informations.
Ou si vous utilisez, cp
utilisez cp -u
.
de man cp
:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
cp -u
peut ne pas s'en soucier, car il ne vérifie que les horodatages, pas la taille ... Donc, vous devez d'abord touch
les fichiers source si vous devez l'utiliser . (Ou utilisez simplement rsync
.)
Pour les transferts de fichiers partiels, cp
ce n'est peut-être pas ce dont vous avez besoin.
Je suggère d'utiliser à la rsync
place. Même lorsque le transfert échoue, vous pouvez simplement réexécuter la commande ultérieurement, et elle ne copiera que les fichiers manquants.
Exemple:
$ rsync -aPEmivvz from/ to/
(copiera from/
dans le to/
répertoire)
Étant donné rsync
que la synchronisation et la vérification après chaque transfert, garantir que les fichiers ont été copiés correctement est triviale.
L'ensemble swich -aPEmivvz
est le standard aller à la sélection, à chaque fois que la copie de fichiers sur des réseaux ou des disques externes, y compris les appareils plug-in, comme des cartes SD, etc.
Ce sont les commutateurs que j'utilise presque toujours:
-a
: "archive", inclut -rlptgo
(récursif, liens symboliques en tant que liens symboliques, autorisations, heures, groupe, propriétaire)
-P
: "progression partielle" montre une belle barre de progression pour chaque fichier
-E
: "l'exécutabilité" conserve l'exécutable ou non
-m
: "noempty" élague les dires vides
-i
: "résumé" imprimer le résumé des modifications pour toutes les mises à jour
-vv
: "plus verbeux"
-z
: "compression"
Vous ne devez pas l'utiliser cp
pour cela. Comme d'autres l'ont dit, ce n'est pas le bon outil pour le travail. L'outil correct va dépendre de vos objectifs.
Si vous voulez juste une copie directe:
rsync /source /destination
avec un certain niveau de drapeaux. Voir les autres réponses pour de très bons exemples.
Si vous souhaitez avoir des mises à jour bidirectionnelles
unison
est la voie à suivre. Rsync ne réussit pas très bien dans la résolution des conflits avec les synchronisations bidirectionnelles. Supprime spécialement. Donc, vous voulez que des copies bidirectionnelles se déclenchentunison
Si vous souhaitez des sauvegardes et que les fichiers sont basés sur du texte, vous pouvez essayer d'utiliser git
. Git peut être exécuté localement, il n'y a pas besoin de "serveur". En fait, les serveurs git ne sont que des méthodes de partage de fichiers. Vous pouvez totalement avoir un dépôt git sur le lecteur de sauvegarde et y "pousser". Encore une fois, cela ne fonctionne vraiment que si les fichiers sont basés sur du texte et que vous essayez d'obtenir une sauvegarde à sens unique.
Encore une fois, si vous optez pour une sauvegarde (et pas seulement une fois), regardez deja-dupe, BackIntime ou des options similaires. Ils prennent des instantanés des données à un moment donné. Ils exécutent tous rsync sous le capot.
Vous pouvez également recopier tous les fichiers, demander une confirmation pour chaque écrasement, puis répondre automatiquement non à la question:
yes n | cp -i /source /dest
(vous avez probablement utilisé plus d'options, comme -r
, alors ajoutez-les simplement comme cp -pri /source /dest
...)