web-dev-qa-db-fra.com

Outil de comparaison de fichiers et de répertoires?

Je cherche quelque chose qui permettra de comparer des répertoires et des fichiers comme Beyond Compare le fait pour Windows.

C'est principalement pour l'utilisation du contrôle de source, mais je dois aussi l'utiliser pour le déploiement.

146
DevelopingChris

Fusioninstall meld

Meld est un outil qui permet de comparer et de fusionner des fichiers et des répertoires. Il s’agit d’une interface graphique analogique au nom standard diffinstall diffutils et patchinstall patch outils en ligne de commande. (Voir man diff et man patch pour plus de détails sur ceux-ci)

enter image description here

En outre, de nombreux systèmes de contrôle de source (tels que bzrinstall bzr-gtk ou gitinstall git ) ont la possibilité de créer des diffs entre les versions.

174
dv3500ea

Diff est ton ami.

diff -ur path1 path2

Cela comparera tous les fichiers communs entre path1 et path2.

Si vous remplacez -ur par -urN, le contenu des fichiers présents dans l'un des chemins sera également affiché.

43
Richm

Beyond Compare est également disponible pour Linux.

Vérifiez leur URL de téléchargement: http://www.scootersoftware.com/download.php

21
aneeshep

Utilisez la commande diff :

diff -u file1 file2

diff -u sélectionne un format avec quelques lignes de contexte. Un diff file1 file2 simple ne répertorie que les différentes lignes. Il existe de nombreuses autres options pour contrôler le format de sortie, ignorer les différences d’espace, etc.

Si vous voulez écrire la sortie dans un fichier, redirigez-le:

diff -u file1 file2 >file1-file2.diff
13
Gilles

Gnome Commander install Gnome Commander

L'interface n'est peut-être pas très sexy, mais extrêmement puissante!

alt text

Et si vous aviez l'habitude de * Commander (comme Norton, ou autres), vous ne serez pas perdu.

12
Huygens

Outils de ligne de commande

Inspiré par cette entrée de blog .

diff

Liste des différents fichiers:

diff -qr folder1 folder2

Lister aussi le contenu:

diff -Naur folder1 folder2

rsync

Si les deux répertoires ne se trouvent pas sur la même machine, rsync pourrait être la solution la plus simple. Généralement, rsync est utilisé pour la synchronisation des répertoires, mais vous pouvez l'exécuter en mode verbose et dry, de sorte qu'il ne répertorie que les fichiers qu'il doit modifier.

rsync -rvnc --delete folder1 server:/path/to/folder2

Vous pouvez omettre c si vous souhaitez comparer les fichiers en fonction de l'horodatage et de la taille des fichiers pour accélérer le traitement:

rsync -rvn --delete folder1 server:/path/to/folder2
10
lumbric

KDiffinstall kdiff3

C'est une interface graphique à diff pour les utilisateurs de KDE (ou si cela ne vous dérange pas d'utiliser les applications Qt).

kdiff3

Il y a aussi dirdiffinstall dirdiff pour les annuaires.

9
tinhed

Krusaderinstall krusader

Krusader est un outil gratuit (disponible dans le Centre logiciel) qui permet de comparer le contenu des dossiers et vous permet de synchroniser de nombreuses options. Vous pouvez filtrer lors de la synchronisation et de la comparaison.

Krusader

Pour comparer le contenu d'un fichier, il vous suffit de marquer deux fichiers, sélectionnez "fichier"> "comparer le contenu" et ils sont comparés lettre par lettre. l'outil de comparaison par défaut utilisé par krusader est l'outil par défaut de KDE " Kompare ". Vous pouvez configurer krusader pour utiliser tout autre outil de comparaison, comme par exemple l'un des outils ci-dessus.

C'est la solution la plus complète que j'ai jamais trouvée et c'est très pratique. Et il supporte toutes les fonctions keybindungs ​​utilisées par midnight commander (syntaxe norton commander).

9
piedro

Peut-être que Meld est ce que vous recherchez. Ou ici existe d'autres alternatives.

6
sagarchalise

Unison est un outil de synchronisation de fichiers rapide qui utilise l'algorithme rsync et vous permet de prévisualiser les différences avant la mise à jour entre deux emplacements, qu'ils soient distants ou locaux.

4
Rog

Un bon moyen de faire cette comparaison est d'utiliser "trouver" avec "md5sum", puis un "diff".

Exemple:

Utilisez find pour lister tous les fichiers du répertoire, puis calculez le hachage md5 pour chaque fichier et dirigez-le vers un fichier:

$find /dir1/ -type f -exec md5sum {} \; > dir1.txt

Effectuez la même procédure dans un autre répertoire:

$find /dir2/ -type f -exec md5sum {} \; > dir2.txt

Comparez ensuite le résultat avec deux fichiers "diff":

$diff dir1.txt dir2.txt

Cette stratégie est très utile lorsque les deux répertoires à comparer ne se trouvent pas sur le même ordinateur et que vous devez vous assurer que les fichiers sont égaux dans les deux répertoires.

Un autre bon moyen de faire le travail est d'utiliser git

git diff --no-index dir1/ dir2/

Meilleures salutations!

4
Adail Junior

J'ai appris sur hashdeep il y a deux semaines. Et cela présente de gros avantages:

  • Contrairement à meld, cela fonctionne bien pour les très gros dossiers. Où meld devient extrêmement lent et l'interface utilisateur ne répond pas (bloqué), hashdeep fonctionne simplement à une vitesse constante
  • Contrairement à rsync, hashdeep détecte les fichiers déplacés, c'est-à-dire les fichiers ayant le même contenu, dans un répertoire différent.

La sortie verbeuse est comme:

...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG

hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 6233
Files partially matched: 0
            Files moved: 3695
        New files found: 19257
  Known files not found: 4713
4
geekQ

Essayez aussi FreeFileSync . Il a une interface décente, une vitesse de comparaison acceptable, un bon filtrage du résultat de la comparaison, différents modes de synchronisation. Il est livré avec un outil de surveillance de dossier (RealTimeSync) qui peut lancer FreeFileSync (en réalité n'importe quelle commande ou script) lorsque ce ou ces dossiers spécifiques ou les fichiers qu’ils contiennent sont modifiés. Vaut vraiment le coup d'essayer.

Plus d'infos à ce sujet ici ou ici , où vous avez un PPA , aussi

De leur page, les principales caractéristiques:

Comparez les fichiers (par octets ou par date) et synchronisez-les.

Pas de limitation: un nombre arbitraire de fichiers peut être synchronisé.

Prise en charge Unicode.

Support réseau.

Prise en charge intégrée des noms de fichiers très longs (plus de MAX_PATH = 260 caractères).

Base de données de synchronisation pour la propagation des fichiers supprimés et la détection des conflits

Prise en charge de plusieurs paires de dossiers avec une configuration distincte

Prise en charge complète des liens symboliques Windows/Linux et des points de jonction Windows.

Interface utilisateur simple et facilement accessible: hautement optimisée pour la vitesse et d'énormes ensembles de données.

Algorithmes entièrement codés en C++.

Tous les indicateurs de progrès optimisés pour une performance maximale!

Créez des travaux par lots pour une synchronisation automatisée avec ou sans interface graphique.

Focus sur la convivialité:

Seules les fonctionnalités nécessaires sur l'interface utilisateur: pas de menus surchargés ni d'icône jungle.

Sélectionnez tous les dossiers par glisser-déposer.

La dernière configuration utilisée et les paramètres d’écran sont enregistrés automatiquement.

Maintenir et charger différentes configurations par glisser-déposer, bouton de chargement ou ligne de commande.

Double-cliquez pour démarrer une application externe (par exemple, afficher le fichier dans l'Explorateur Windows).

Copier et coller toutes les données de la grille sous forme de texte

Supprimez les fichiers superflus/temporaires directement sur la grille principale.

Menu contextuel clic-droit.

Informations d'état complètes et rapport d'erreurs

Triez les listes de fichiers par nom, taille ou date.

Prise en charge des fichiers de plus de 4 Go.

Possibilité de déplacer les fichiers vers la corbeille au lieu de les supprimer/les écraser.

Ignorez les répertoires "\ RECYCLER" et "\ System Volume Information" avec le filtre par défaut. (Windows uniquement)

Des versions localisées sont disponibles pour de nombreuses langues.

Supprimer avant copie: évitez les pénuries d'espace disque pour les travaux de synchronisation volumineux.

Fonctionnalité de filtrage pour inclure/exclure des fichiers de la synchronisation (sans requérir une nouvelle comparaison!).

Inclure/exclure temporairement des fichiers spécifiques de la synchronisation.

Gérer automatiquement les changements d'heure d'été sur les volumes FAT/FAT32.

Version portable disponible (sélectionnable via l'installateur).

Version 64 bits native.

Recherchez les mises à jour à partir de FreeFileSync automatiquement.

Copiez les fichiers verrouillés à l'aide du service de cliché instantané des volumes Windows. (Windows uniquement)

Créez des sauvegardes régulières avec les macros% temps%,% date% dans les noms de répertoire

Copier les temps de création/accès/modification du fichier et du dossier lors de la synchronisation

Stratégie de verrouillage avancée permettant plusieurs processus de synchronisation (par exemple, plusieurs rédacteurs, même partage réseau)

J'ajouterais qu'il peut gérer les fichiers supprimés, en les déplaçant vers la Corbeille ou vers un dossier spécifié par l'utilisateur. Pour signaler un inconvénient, la documentation du programme est plutôt centrée sur Windows et moins sur Linux. Mais il fait bien son travail.

3
luri

Vous pouvez utiliser diffuse:

Sudo apt-get install diffuse
diffuse file1 file2
3
metdos

Vous pouvez essayer fusion .

Ce sont les référentiels et fournit une interface graphique pour la comparaison de fichiers ou de dossiers.

2
Pavlos G.

Eclipse IDE est un peu lourd, si vous ne faites que des comparaisons, mais il fait du bon travail, entre autres choses. Vous pouvez sélectionner 2 projets, chemins ou fichiers et les comparer, ainsi que vous synchroniser avec les serveurs de contrôle de source.

1
Rog

IMHO FreeFileSync est très bon et plus utile que Meld. Il est rapide et stable, peut effectuer des synchronisations personnalisables et peut également exporter le résultat de la comparaison dans un fichier csv.

lien Lanchpad

1
Reza

Comparer des fichiers

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

Vous pouvez utiliser la commande cmpNAME _ :

cmp -b "File_1.txt" "File_2.txt"

la sortie serait

a b differ: byte 11, line 2 is  62 2  40  

Pour comparer les dirs (votre besoin):

vous pouvez utiliser la commande diff :

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ
0
Maythux

Les fonctionnalités de multiplate-forme, faciles, sans fioritures et de sauvegarde de profil font Jfilesync mon premier choix

0
nightcrawler