Avec
diff -r
Je peux faire cette tâche, mais cela prend tellement de temps car diff
vérifie le contenu du fichier.
Je veux quelque chose qui détermine que deux fichiers sont identiques en ce qui concerne leur taille, leur dernière modification, etc. Mais pas de vérification petit à petit du fichier (par exemple, une vidéo prend tellement de temps).
Existe-t-il un autre moyen ?
Réponse acceptée :
rsync, par défaut, ne compare que les métadonnées des fichiers. cela signifie horodatage, taille et attributs. entre autres. mais pas le contenu des fichiers.
rsync -n -a -i --delete source/ target/
explication :
-n
ne pas copier ou supprimer réellement <– C'EST IMPORTANT !!1-a
comparer toutes les métadonnées du fichier comme l'horodatage et les attributs-i
imprimer une ligne d'information par fichier--delete
signaler également les fichiers qui ne sont pas dans la source
remarque :il est important d'ajouter une barre oblique aux noms de répertoire. c'est une chose rsync.
vous pouvez raccourcir les options d'une lettre comme ceci
rsync -nai --delete source/ target/
si vous souhaitez également voir les lignes imprimées pour les fichiers identiques, fournissez -i
deux fois
rsync -naii --delete source/ target/
exemple de sortie :
*deleting removedfile (file in target but not in source)
.d..t...... ./ (directory with different timestamp)
>f.st...... modifiedfile (file with different size and timestamp)
>f+++++++++ newfile (file in source but not in target)
.f samefile (file that has same metadata. only with -ii)
rappelez-vous que rsync ne compare que les métadonnées. cela signifie que si le contenu du fichier a changé mais que les métadonnées sont restées les mêmes, rsync signalera que le fichier est le même. c'est un scénario peu probable. donc, soit faites confiance au fait que lorsque les métadonnées sont identiques, les données sont identiques, soit vous devez comparer les données de fichier bit par bit.
bonus :pour des informations sur la progression, voir ici :Estimer le temps ou le travail restant pour terminer pour rsync ?