198 votes

Comparaison du contenu de deux répertoires

J'ai deux répertoires qui devraient contenir les mêmes fichiers et avoir la même structure de répertoire.

Je pense qu'il manque quelque chose dans l'un de ces répertoires.

En utilisant le bash Shell, y a-t-il un moyen de comparer mes répertoires et de voir si l'un d'eux manque de fichiers qui sont présents dans l'autre ?

0voto

gliviu Points 11

J'ajouterai à cette liste une alternative à NodeJs que j'ai écrite il y a quelque temps.

dir-compare

npm install dir-compare -g
dircompare dir1 dir2

0voto

jfabaf Points 1

Vous pouvez utiliser cet outil :

https://github.com/jfabaf/comparefolders/

Je l'ai développé il y a quelques années parce que j'avais le même problème.

Il compare les MD5 des fichiers, donc le nom des fichiers n'a pas d'importance.

0voto

Antonio Trogu Points 11

Comme nous l'avons déjà noté, vous pouvez également utiliser la commande comm, par exemple de cette façon :

comm -3 <(ls -1 dir1) <(ls -1 dir2)

Ceci compare le contenu des 2 répertoires, montrant seulement 2 colonnes, chacune avec des fichiers uniques à ce répertoire.

0voto

xeruf Points 262

Sur un système de fichiers lent, diff Cela peut prendre un certain temps, mais j'ai fait de bonnes expériences avec rsync, car il fonctionne bien de manière incrémentielle :

rsync --recursive --progress --delete --links --dry-run

Alias en tant que rdiff il s'agit d'un exemple d'exécution :

> rdiff test/ testuser
sending incremental file list
deleting .sudo_as_admin_successful
.bash_history
.bash_logout
.bashrc
.profile

Il ne fait évidemment que répertorier les fichiers sans les différencier, mais je trouve cela déjà très utile.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X