Il m’est arrivé de devoir copier de très gros dossiers, presque 1To au total.
Avant de supprimer l’original, je voulais m’assurer que toute leur structure était bien copiée. Pour ce genre de travail, nous avons de bons outils visuels comme Meld ou des solutions payantes comme Beyond Compare (le préférée d’un ami, mais il utilise mac, donc …). Ici, vous pouvez trouver d’autres options, mais je n’ai de l’expérience qu’avec ceux que j’ai mentionné précédemment. Les deux sont de très bons outils et, bien sûr, ils ont de nombreuses autres fonctions en dehors de la simple comparaison de dossiers.
Quoi qu’il en soit, le problème est que pour ces dossiers lourds, ces outils ne sont pas la meilleure option. Si vous voulez seulement savoir si tous les fichiers et dossiers ont été copiés, sans plus de détails, vous pouvez utiliser des commandes de bash très utiles (dans linux, mac ou certains linux dans Windows).
Nous pouvons utiliser diff pour comparer
$ diff -qr dirA dirB
mais diff lit toutes les lignes de chaque fichier afin d’obtenir la comparaison, donc si nous parlons de près de 1 To, ce ne sera pas la meilleure option. Cependant, il pourrait être utilisé en combinaison avec d’autres commandes pour obtenir plus rapidement des résultats acceptables.
Nous pouvons commencer par lister tous les fichiers contenus dans les sous-dossiers des deux dossiers et stocker la liste dans un fichier txt. Par exemple, si vous souhaitez comparer les dossiers /home/user/A et /home/user/B, nous pouvons:
# Entrer dans le dossier A $ cd /home/user/A # Obtenir la liste des fichiers, trier et stocker $ find. -type f | sort > /tmp/dirA.txt # Idem pour le dossier B $ cd /home/user/B $ find. -type f | sort > /tmp/dirB.txt
Et maintenant, nous pouvons simplement comparer les deux listes avec diff:
$ diff /tmp/dirA.txt /tmp/dirB.txt
Si diff ne trouve aucune différence, nous pouvons au moins conclure qu’au moins tous les fichiers ont été copiés (il se peut qu’ils n’aient pas été copiés correctement).
Information additionnelle:
$ man diff $ man find