comment puis-je vérifier que deux dossiers sont les mêmes dans Linux
J'ai déplacé un site web à partir d'un serveur à un autre et j'ai copié les fichiers à l'aide de SCP
Je souhaite maintenant de vérifier que tous les fichiers ont été copiés sur OK.
Comment puis-je comparer les sites?
Compter les fichiers d'un dossier?
Obtenir le total de la taille des fichiers pour le dossier de l'arbre?
ou est-il une meilleure façon de comparer les sites?
Paul
source d'informationauteur Pbearne
Vous devez vous connecter pour publier un commentaire.
Si vous étiez à l'aide de scp, vous pourriez probablement avoir utilisé rsync.
rsync ne pas transférer des fichiers qui sont déjà à jour, de sorte que vous pouvez l'utiliser pour vérifier une copie est en cours par la simple exécution de rsync de nouveau.
Si vous faisiez quelque chose comme ça sur l'ancien hôte:
Alors vous pourriez faire quelque chose comme
L'option '-a' est l'abréviation de "archive" qui fait une copie récursive et préserve les permissions, propriétés etc. De vérifier la page de man pour plus d'info, comme il peut faire beaucoup de choses intelligentes.
À l'aide de diff avec le récursive
-r
et rapide-q
option. Il est le meilleur et de loin le moyen le plus rapide pour ce faire.Il ne sera pas vous dire quelles sont les différences (suppression de l'option-q pour le voir), mais il va très rapidement vous dire si tous les fichiers sont les mêmes.
Si il ne montre pas de sortie, tous les fichiers sont les mêmes, sinon il va obtenir la liste des fichiers qui sont différents.
va produire une liste de sommes de contrôle des fichiers. Vous pouvez ensuite
diff
celles de voir s'il manque des/ajouté/fichiers différents.peut-être que vous pouvez utiliser quelque chose de similaire à ceci:
Si vous avez utilisé scp, vous probablement pouvez également utiliser rsync over ssh.
rsync ne le sommes pour vous.
Assurez-vous d'utiliser l'option-n pour effectuer un essai à blanc. Consultez la page de manuel.
Je préfère rsync via scp ou même locales, cp, chaque fois que je peux l'utiliser.
Si rsync n'est pas une option, md5sum peut générer des condensés md5 et md5sumc --vérification de la vérifier.
Faire des sommes de contrôle pour tous les fichiers, par exemple à l'aide de md5sum. Si elles sont toutes les mêmes pour tous les fichiers et pas de fichier est manquant, tout est OK.
Essayer de comparaison votre répertoire de façon récursive. Vous obtiendrez un bon résumé si quelque chose est différent dans l'un des répertoires.
Vous pouvez le faire avec rsync, il est grand si vous voulez juste le miroir de quelque chose.
/Johan
Mise à jour : il Semble que @rjack me battre avec le rsync réponse avec 6 secondes 🙂
Je voudrais ajouter ceci à Douglas Leeder ou Eineki, mais, malheureusement, n'ont pas assez de réputation pour commentaire. De toute façon, leurs réponses sont à la fois grands, à l'exception qu'ils ne travaillent pas pour les noms de fichier avec des espaces. Pour faire ce travail, ne
Juste de l'expérimentation, j'aime aussi utiliser l'option-W ### arguement sur diff et de sortie dans un fichier, le plus facile à analyser et à comprendre dans le terminal.
À ajouter à la réponse de Sidney.
Il n'est pas nécessaire de filtrer le type f, et de produire le code de hachage.
En réponse à zidarsk8, vous n'avez pas besoin de trier, depuis le trouver, même comme ls, trie les noms de fichiers par défaut par ordre alphabétique. Il travaille pour les répertoires vides.
Pour résumer, le top 3 des meilleures réponses serait:
(P. S. Agréable de faire un essai avec rsync)