Outil de comparaison de fichiers et de répertoires?

142

Je cherche quelque chose qui compare les répertoires et les 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.

    
posée DevelopingChris 10.11.2010 - 13:15
la source

19 réponses

169

Fusion

Meld est un outil qui permet de comparer et de fusionner des fichiers et des répertoires. C'est une interface graphique analogue à la norme diff et patch outils de ligne. (Voir man diff et correctif utilisateur pour plus de détails sur ceux-ci)

De nombreux systèmes de contrôle de source (tels que bzr ou git ) peut créer des différences entre les versions.

    
réponse donnée dv3500ea 10.11.2010 - 13:28
la source
42

Diff est ton ami.

diff -ur path1 path2

Ceci comparera tous les fichiers communs à path1 et path2.

Si vous modifiez -ur en -urN , cela affichera également le contenu des fichiers qui ne sont présents que dans l'un des chemins.

    
réponse donnée Richm 04.10.2011 - 19:43
la source
21

'Beyond Compare' est également disponible pour Linux.

Vérifiez leur URL de téléchargement: lien

    
réponse donnée aneeshep 10.11.2010 - 13:23
la source
13

Utilisez la commande diff :

diff -u file1 file2

diff -u sélectionne un format avec quelques lignes de contexte. Un simple diff file1 file2 ne liste 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 souhaitez écrire la sortie dans un fichier, redirigez-la:

diff -u file1 file2 >file1-file2.diff
    
réponse donnée Gilles 07.10.2013 - 22:05
la source
12

Gnome Commander

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

Et si vous étiez habitué à d'autres * Commander (comme Norton ou autres), vous ne serez pas perdu.

    
réponse donnée Huygens 10.11.2010 - 14:09
la source
9

Outils de ligne de commande

Inspiré de cette entrée de blog .

diff

Liste de différents fichiers:

diff -qr folder1 folder2

Annonce également du contenu:

diff -Naur folder1 folder2

rsync

Si les deux répertoires ne sont pas sur le même ordinateur, rsync peut être la solution la plus simple. Habituellement, rsync est utilisé pour synchroniser les répertoires, mais vous pouvez l'exécuter en mode verbeux et en mode sec, ainsi il ne listera que les fichiers qu'il devra modifier.

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

Vous pouvez omettre c si vous souhaitez comparer des fichiers en fonction des horodatages et de la taille des fichiers pour accélérer tout:

rsync -rvn --delete folder1 server:/path/to/folder2
    
réponse donnée lumbric 25.12.2011 - 20:22
la source
9

Krusader

Krusader est un outil gratuit (disponible dans le Software Center) qui affiche le contenu des dossiers en comparaison et vous permet de synchroniser avec de nombreuses options différentes. Vous pouvez filtrer pendant la synchronisation et la comparaison.

Pour comparer le contenu du fichier, il vous suffit de sélectionner deux fichiers, sélectionnez "fichier" & gt; "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 définir 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 qui est très pratique. Et il prend en charge toutes les fonctions keybindungs ​​utilisées par le commandant de minuit (syntaxe norton commander).

    
réponse donnée piedro 10.11.2010 - 19:39
la source
9

KDiff3

Il s’agit d’une interface graphique pour diff pour les utilisateurs de KDE (ou si cela ne vous dérange pas d’utiliser les applications Qt).

Il y a aussi dirdiff pour les répertoires.

    
réponse donnée tinhed 10.11.2010 - 13:59
la source
6

Peut-être que Meld est ce que vous recherchez. Ou encore, ici sont d’autres solutions.

    
réponse donnée sagarchalise 10.11.2010 - 13:23
la source
4

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.

    
réponse donnée Rog 18.01.2011 - 03:29
la source
4
Il y a deux semaines, j'ai découvert hashdeep . Et il a de forts avantages:

  • Contrairement à meld , cela fonctionne bien pour les très grands dossiers. Lorsque meld devient extrêmement lent et que l'interface utilisateur ne répond plus (bloquée), le hashdeep ne fonctionne qu'à une vitesse constante
  • Contrairement à rsync , le hashdeep détecte les fichiers déplacés - les fichiers ayant le même contenu, juste dans un répertoire différent.

La sortie détaillée 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
    
réponse donnée geekQ 07.05.2013 - 13:50
la source
3

Essayez aussi FreeFileSync . Il possède 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 fait, toute commande ou script) lorsque ce dossier (ou ces dossiers) spécifique ou les fichiers qu'il contient sont modifiés. Vaut vraiment le coup d'essayer.

Plus d’informations à ce sujet ici ou ici , où vous avez également un PPA ,

À partir de leur page, les fonctionnalités clés:

  

Comparez les fichiers (octet ou date) et synchronisez-les.

     

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

     

Prise en charge d'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.

     

Lean & amp; Interface utilisateur facilement accessible: très optimisée pour la vitesse et les énormes ensembles de données.

     

Algorithmes codés en C ++ complètement.

     

Tous les indicateurs de progression optimisés pour des performances maximales!

     

Créer des tâches par lots pour la synchronisation automatique avec ou sans interface graphique.

     

Focus sur la convivialité:

     
    
      
        

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

                 

Sélectionnez tous les dossiers via drag & amp; déposer.

                 

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

                 

Maintenir et charger différentes configurations par glisser-déplacer; drop, load-button ou commandline.

                 

Cliquez deux fois pour lancer une application externe (par exemple, afficher un fichier dans l’Explorateur Windows)

                 

Copier & amp; coller toutes les données de grille sous forme de texte

                 

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

                 

Cliquez sur le menu contextuel avec le bouton droit de la souris.

                 

Informations détaillées sur l’état et signalement des erreurs

                 

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

      
    
  
     

Prise en charge de fichiers de plus de 4 Go.

     

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

     

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

     

Les versions localisées sont disponibles dans de nombreuses langues.

     

Supprimer avant la copie: évitez les manques d’espace disque pour les gros travaux de synchronisation.

     

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

     

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

     

Gère automatiquement les modifications de l'heure d'été sur les volumes FAT / FAT32.

     

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

     

Version native 64 bits.

     

Recherchez automatiquement les mises à jour depuis FreeFileSync.

     

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

     

Créer des sauvegardes régulières avec les macros% time%,% date% dans les noms de répertoires

     

Copier les temps de création / d’accès / de modification des fichiers et des dossiers lors de la synchronisation

     

Stratégie de verrouillage avancée pour autoriser 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 dans la corbeille ou dans un dossier spécifié par l'utilisateur. D’un inconvénient: la documentation du programme se concentre un peu sur Windows, moins sur Linux. Mais ça marche très bien.

    
réponse donnée luri 18.01.2011 - 02:18
la source
3

Vous pouvez utiliser diffuse:

sudo apt-get install diffuse
diffuse file1 file2
    
réponse donnée metdos 18.12.2012 - 09:50
la source
3

Une bonne façon de faire cette comparaison consiste à utiliser " find " avec " md5sum ", puis un " diff ".

Exemple:

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

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

Procédez de la même manière dans un autre répertoire:

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

Ensuite, comparez le résultat de deux fichiers avec "diff":

$diff dir1.txt dir2.txt

Cette stratégie est très utile lorsque les deux répertoires à comparer ne sont pas dans 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 consiste à utiliser git

git diff --no-index dir1/ dir2/

Cordialement!

    
réponse donnée Adail Junior 09.01.2017 - 21:09
la source
2

Vous pouvez essayer fusionner .

Il s’agit des référentiels et fournit une interface graphique pour la comparaison de fichiers ou de dossiers.

    
réponse donnée Pavlos G. 04.10.2011 - 18:58
la source
1

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

    
réponse donnée Rog 18.01.2011 - 03:25
la source
1

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

    
réponse donnée Reza 20.01.2014 - 13:53
la source
0

Cross-platform, easy, no fuss & amp; Les fonctions de sauvegarde de profils font de Jfilesync mon premier choix

    
réponse donnée nightcrawler 23.07.2014 - 21:51
la source
0

Pour comparer des fichiers

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

Vous pouvez utiliser la commande cmp :

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

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
    
réponse donnée Maythux 17.06.2015 - 13:05
la source

Lire d'autres questions sur les étiquettes