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.
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 diff
et patch
outils en 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 diffs entre les versions.
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é.
Beyond Compare est également disponible pour Linux.
Vérifiez leur URL de téléchargement: http://www.scootersoftware.com/download.php
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
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 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
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).
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.
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!
J'ai appris sur hashdeep il y a deux semaines. Et cela présente de gros avantages:
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 constantersync
, 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
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.
Vous pouvez utiliser diffuse:
Sudo apt-get install diffuse
diffuse file1 file2
Vous pouvez essayer fusion .
Ce sont les référentiels et fournit une interface graphique pour la comparaison de fichiers ou de dossiers.
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.
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.
File_1.txt
Line1
Line2
File_2.txt
Line1
Line 2
Vous pouvez utiliser la commande cmp
NAME _ :
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
Les fonctionnalités de multiplate-forme, faciles, sans fioritures et de sauvegarde de profil font Jfilesync mon premier choix