J'ai un répertoire avec beaucoup de livres dans PDF format (environ 2 Go de taille).
En lisant, je quitte souvent des notes et des annotations dans les fichiers. De temps en temps, je fais une sauvegarde sur un disque dur externe. Depuis que je ne me souviens pas de quels fichiers ont été modifiés depuis la dernière sauvegarde, je viens de copier et écrase le tout.
Windows vérifie-t-il si les fichiers avec le même nom sont identiques (par contenu) avant d'écraser? Sinon, comment puis-je approcher de faire exactement cela?
Windows ne peut pas différencier des fichiers identiques et modifiés si vous copiez à l'aide de Explorateur Windows.
Windows peut Différencier entre des fichiers identiques et modifiés si vous copiez à l'aide de Robocopy, qui est un utilitaire de copie de fichier inclus dans Windows (Vista, 7, 8.1 et 10).
Il n'est pas nécessaire d'utiliser des outils tiers.
Vous pouvez enregistrer ce script sous forme de fichier de commandes et réexécuter à nouveau lorsque vous souhaitez effectuer une sauvegarde:
robocopy /e c:\PDFs p:\PDFs
/e
(ou alors /s
) Le commutateur n'est pas nécessaire si tous vos PDF sont à la racine du dossier référencé dans le script, mais si vous souhaitez inclure Subfolders Utilisez alors /s
. Si vous souhaitez inclure des sous-dossiers et vide Subfuters, puis utilisez /e
.Ce script simple est tout ce dont vous avez besoin.
Windows ne fait pas cela. Il vous incitera cependant à écraser les fichiers avec le même nom et vous pouvez sélectionner manuellement si vous souhaitez le faire.
Pour une solution plus facile, utilisez freefileSync pour comparer les dossiers et écraser uniquement les fichiers modifiés/mis à jour (option miroir et sélectionnez File time and size
In Paramètres de comparaison ).
Windows ne fait pas ça de manière simple.
Eh bien, ça fait, mais comme tout sous Windows, il est au mieux ambiguë. Vous serez invité à indiquer les conflits de noms et en fonction de votre version Windows, vous obtenez une boîte de dialogue plus ou moins compréhensible avec plusieurs options parmi lesquelles choisir avec une note supplémentaire ("Blah Blah, une taille différente, plus récente"). Vous pouvez ensuite, un par un, choisir de conserver le fichier modifié et que vous avez la possibilité d'appliquer ceci à tous les matchs "identiques".
Bien sûr, il s'agit de Windows, vous n'avez donc aucune garantie que "plus récente" signifie réellement plus récente et que vous ne savez pas ce qui est "identique" (est-ce juste la collision de noms, est-ce que c'est le changement de taille, est-ce la date de modification, ou est-ce tout?).
Il existe une grande variété de programmes de synchronisation de fichiers, à la fois libres et commerciaux qui sont quelque peu mieux dans la mesure où ils vérifient si un fichier a été modifié avant de l'écraser, rsync
étant le traditionnel Les outils mère-de-tout-mère, mais également être un doldbid moins convivial que certaines personnes peuvent souhaiter.
Toutefois, je le fais non Recommandez-les parce qu'ils ne rendent pas fondamentalement meilleurs les choses.
Personnellement, si vous n'avez pas peur d'une petite ligne de commande (pouvait toujours faire un fichier de commandes!) Je recommanderais le excellent - ZPAQ de Matt Mahoney. Ceci est fondamentalement zip, sauf qu'il comprime beaucoup mieux, et la déduplication à la volée.
Eh bien, les outils de comparaison de la somme de contrôle sont tous agréables et cela. Surtout lorsque vous passez sur le réseau, rien ne peut battre rsync
_ fonctionnant aux deux extrémités, c'est juste génial. Mais alors qu'un outil de synchronisation typique fera le travail tout simplement bien (et mieux que l'explorateur) Ce n'est pas ce que c'est le meilleur.
Écriture sur un lecteur externe, que vous comparez ou non des checksums, vous avez deux choses que vous devez faire face à:
Afin de comparer les checksums, vous devez d'abord lire dans les fichiers. Arrêt complet. Ce qui signifie que pour quelques milliers de fichiers, vous payez la latence de traverser la structure de répertoire, ouvrant des fichiers sur un lien de latence élevé et en lisant plusieurs milliers de fois. De plus, les transférer dans de petites unités sur un fil de latence élevé. Eh bien, ça craint grand temps, c'est un processus très coûteux.
Ensuite, vous devez écrire les fichiers qui ont à nouveau modifié avec plusieurs opérations de haute latence, telles que l'ouverture de fichiers et écraser des données, ainsi que sur une fois un par un. Ceci sucks deux fois car non seulement est-il intrinsèquement dangereux (vous perdez le fichier écrasé si votre chat trébuche sur le câble USB) mais aussi avec moderne blague HardDridives (tels que de nombreux disques externes), il peut être extrêmement lent, jusqu'au bout du mégaoctet-par-deuxième, si vous êtes malchanceux. Cela, et la latence de milliers de petits transferts s'ajoutant.
Un outil de copie de fichier bien écrit peut être en mesure de gérer le problème de sécurité en copiant un fichier temporaire et en le renommant atmériquement par la suite (mais cela ajoute encore plus de frais généraux!).
Maintenant, un format d'archive comme ZPAQ créera une archive qui contient les checksums des fichiers déjà, ils peuvent être lus rapidement et séquentiellement à partir d'un endroit. Il est ensuite localement (signifie localement "de votre côté du câble" où vous avez probablement un disque raisonnablement rapide connecté via SATA ou M.2 ou quelque chose) compare les checksums, compresse les différences et APPEND-UNIQUEMENT = Écrit les données compressées séquentiellement à l'archive existante. Oui, cela signifie que les archives deviendront un peu au fil du temps, car vous portez toute une histoire. Hélas, le remettre, le coût est très modéré Merci à la diffusion et à la compression.
Cette méthode est plus rapide et plus sûre en même temps. Si vous tirez le câble Mid-Operation, votre sauvegarde actuelle est interrompue (évidemment!). Mais vous ne perdez pas vos données précédentes. Toutes les transactions qui passent sur des liens "lents" sont strictement séquentielles, grands transferts, qui optimise le débit.
XCopy/D ne copiera que des fichiers si la source est plus récente que la destination. (Xcopy/s/d pour une copie récursive)