Comparaison de répertoires et utilisation d'autres outils de comparaison
En plus de comparer des fichiers individuels, Linux propose des outils pour comparer des répertoires entiers et des outils de comparaison alternatifs qui peuvent être mieux adaptés à certains scénarios.
Comparaison de répertoires avec diff
La commande diff
peut également comparer des répertoires en utilisant l'option -r
(récursive) :
Créons deux répertoires avec quelques fichiers à comparer :
mkdir -p /home/labex/project/dir1
mkdir -p /home/labex/project/dir2
## Création de fichiers dans le premier répertoire
echo "This is file 1" > /home/labex/project/dir1/file1.txt
echo "This is file 2" > /home/labex/project/dir1/file2.txt
echo "This is file 3" > /home/labex/project/dir1/file3.txt
## Création de fichiers similaires dans le deuxième répertoire avec quelques différences
echo "This is file 1 - modified" > /home/labex/project/dir2/file1.txt
echo "This is file 2" > /home/labex/project/dir2/file2.txt
## Note : file3.txt est absent de dir2
echo "This is a new file" > /home/labex/project/dir2/file4.txt
Maintenant, comparons ces répertoires :
diff -r /home/labex/project/dir1 /home/labex/project/dir2
Vous devriez voir une sortie similaire à :
diff -r /home/labex/project/dir1/file1.txt /home/labex/project/dir2/file1.txt
1c1
< This is file 1
---
> This is file 1 - modified
Only in /home/labex/project/dir1: file3.txt
Only in /home/labex/project/dir2: file4.txt
Cette sortie montre :
- La différence de contenu dans
file1.txt
file3.txt
n'existe que dans dir1
file4.txt
n'existe que dans dir2
file2.txt
est identique dans les deux répertoires (donc aucune différence n'est signalée)
Utilisation de la commande diff3
Lorsque vous avez besoin de comparer trois fichiers (par exemple, lors de la fusion de modifications provenant de plusieurs sources), vous pouvez utiliser la commande diff3
:
Créons un troisième fichier de configuration avec ses propres modifications :
echo "## Configuration File for Robot Arm" > /home/labex/project/files/config5.txt
echo "motor_speed = 100" >> /home/labex/project/files/config5.txt
echo "acceleration = 30" >> /home/labex/project/files/config5.txt
echo "max_rotation = 180" >> /home/labex/project/files/config5.txt
Maintenant, utilisons diff3
pour comparer les trois fichiers :
diff3 /home/labex/project/files/config1.txt /home/labex/project/files/config2.txt /home/labex/project/files/config5.txt
Le format de sortie de diff3
est un peu plus complexe, mais il montre comment chaque fichier diffère des autres, ce qui est utile pour résoudre les conflits de fusion.
Utilisation de la commande colordiff
L'utilitaire colordiff
est un wrapper pour diff
qui produit la même sortie mais avec une mise en évidence syntaxique en couleur, ce qui la rend plus facile à lire.
Installons d'abord colordiff
:
sudo apt-get update && sudo apt-get install -y colordiff
Maintenant, comparons nos fichiers en utilisant colordiff
:
colordiff /home/labex/project/files/config1.txt /home/labex/project/files/config2.txt
La sortie sera similaire à celle de la commande diff
normale, mais avec une mise en évidence en couleur des lignes ajoutées, supprimées et modifiées.
Utilisation de la commande wdiff
La commande wdiff
(comparaison mot à mot) compare les fichiers mot par mot plutôt que ligne par ligne, ce qui peut être plus utile pour les textes ou la documentation :
Installons wdiff
:
sudo apt-get update && sudo apt-get install -y wdiff
Créons deux fichiers avec des modifications de phrases :
echo "The robot arm moves quickly and efficiently." > /home/labex/project/files/sentence1.txt
echo "The robot arm moves slowly but efficiently." > /home/labex/project/files/sentence2.txt
Maintenant, comparons-les avec wdiff
:
wdiff /home/labex/project/files/sentence1.txt /home/labex/project/files/sentence2.txt
Vous devriez voir une sortie mettant en évidence les mots modifiés :
The robot arm moves [-quickly and-] {+slowly but+} efficiently.
Les différents outils de comparaison de Linux servent à diverses fins et scénarios :
diff
pour la comparaison générale de fichiers
diff -r
pour la comparaison de répertoires
diff3
pour la comparaison à trois voies
colordiff
pour une sortie mise en évidence en couleur
wdiff
pour la comparaison mot par mot
En choisissant l'outil approprié pour vos besoins spécifiques, vous pouvez rendre la comparaison de fichiers plus efficace.