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.
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.
Réponses:
Meld est un outil qui permet de comparer et de fusionner des fichiers et des répertoires. C'est une interface graphique analogique aux outils standard diff
et en patch
ligne de commande. (Voir man diff et man patch pour plus de détails sur ceux-ci)
En outre, de nombreux systèmes de contrôle de source (tels que bzr
ou git
) ont la possibilité de créer des différences entre les versions.
beyond compare
ci - dessous. supérieur à
Diff est ton ami.
diff -ur path1 path2
Cela comparera tous les fichiers communs entre path1 et path2.
Si vous passez -ur
à, -urN
cela affichera également le contenu des fichiers qui ne sont présents que dans l'un des chemins.
colordiff
et utilisécolordiff -ur path1 path2
Beyond Compare est également disponible pour Linux.
Vérifiez leur URL de téléchargement: http://www.scootersoftware.com/download.php
Utilisez la diff
commande:
diff -u file1 file2
diff -u
sélectionne un format avec quelques lignes de contexte. Une plaine diff file1 file2
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
L'interface n'est peut-être pas très sexy, mais extrêmement puissante!
Et si vous aviez l'habitude de * Commander (comme Norton, ou autres), vous ne serez pas perdu.
Inspiré par cette entrée de blog .
Liste des différents fichiers:
diff -qr folder1 folder2
Lister aussi le contenu:
diff -Naur folder1 folder2
Si les deux répertoires ne sont pas sur la même machine, rsync
la solution la plus simple pourrait être. rsync
Est généralement utilisé pour synchroniser les 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 devrait modifier.
rsync -rvnc --delete folder1 server:/path/to/folder2
c
Si vous souhaitez comparer des fichiers en fonction de leur horodatage et de leur taille, vous pouvez omettre de les accélérer:
rsync -rvn --delete folder1 server:/path/to/folder2
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.
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).
J'ai entendu parler de hashdeep il y a deux semaines. Et cela présente de gros avantages:
meld
cela, cela fonctionne bien pour les très grands dossiers. Où meld
devient extrêmement lent et l'interface utilisateur ne répond pas (bloqué), hashdeep fonctionne simplement à une vitesse constantersync
hashdeep, hashdeep détecte les fichiers déplacés - des fichiers avec 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
Un bon moyen de faire cette comparaison est d'utiliser " find " avec " md5sum ", puis " 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!
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 des dossiers (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.
Cliquez avec le bouton droit sur le menu contextuel.
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 seulement)
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 seulement)
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.
Vous pouvez utiliser diffuse:
sudo apt-get install diffuse
diffuse file1 file2
Vous pouvez essayer de fondre .
Ce sont les référentiels et fournit une interface graphique pour la comparaison de fichiers ou de dossiers.
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.
Jfilesync est mon premier choix grâce aux fonctionnalités multi -plateformes, simples, sans problème et avec enregistrement du profil.
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"
la sortie serait
a b differ: byte 11, line 2 is 62 2 40
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