Comment utiliser les fichiers Diff sous Linux
![Comment utiliser les fichiers Diff sous Linux](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-00-feature-image-640x375.webp)
Diff est un outil de ligne de commande pour les systèmes Unix qui vous permet de comparer deux fichiers ou répertoires et de voir les différences entre eux. C’est idéal pour comparer les anciennes et les nouvelles versions de fichiers pour voir ce qui a changé. Dans cet article, nous vous montrons comment diff
comparer facilement des fichiers sous Linux.
Comparer des fichiers avec diff
- Ouvrez une fenêtre de terminal.
- Tapez
diff
et les chemins d’accès aux deux fichiers que vous souhaitez comparer. Dans ce cas, je compare deux petits programmes C sur mon bureau en utilisant la commande suivante :
diff ~/Desktop/hello.c ~/Desktop/hello-1.c
![diff-terminal-1 Une fenêtre de terminal affichant une commande diff.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-02-run-diff-program.webp)
- Appuyez sur Enterpour soumettre la commande. L’affichage résultant vous montrera toutes les différentes lignes entre les fichiers. Les numéros de ligne comparés seront affichés sous la forme « 1c1 », ce qui signifie que la première ligne a été modifiée et que les différences suivantes ont été trouvées.
![diff-terminal-2 Une fenêtre de terminal affichant la sortie d'une commande diff.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-03-sample-diff-output.webp)
- Pour voir une vue côte à côte des fichiers et de leurs différences, utilisez le
-y
drapeau aprèsdiff
. Par exemple:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c
![diff-terminal-3 Une fenêtre de terminal affichant une commande qui imprimera un diff visuel.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-04-visual-diff-command-flag.webp)
Toute ligne avec un symbole pipe ( |
) est une ligne avec une différence. Assurez-vous simplement de développer d’abord la fenêtre de votre terminal, sinon vous aurez peut-être du mal à voir l’affichage.
![diff-terminal-4 Une fenêtre de terminal affichant la sortie d'une commande visual diff.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-05-sample-visual-diff-output.webp)
Comparer des fichiers avec Meld
La fonctionnalité de diff
peut également être accessible via Meld , une interface graphique pour diff
. Considérant que l’interface utilisateur de diff peut être difficile à maîtriser, Meld est un outil utile.
- Installez Meld à partir de la ligne de commande en ouvrant le terminal et en tapant :
sudo apt -y install meld
ou
sudo dnf -y install meld
pour les distributions basées sur RPM.
Cela initialisera le gestionnaire de paquets apt et commencera l’installation de Meld. Notez que le -y
drapeau dira automatiquement « oui » à toutes les invites ; veuillez le supprimer si vous préférez confirmer ces invites manuellement.
![fusion-installation-fusion-apt Une fenêtre de terminal affichant la commande d'installation de Meld.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-06-apt-command-install-meld.webp)
- Entrez votre mot de passe administrateur lorsque vous y êtes invité. Lorsque vous voyez à nouveau l’invite de commande, l’installation est terminée et Meld peut être ouvert.
![meld-install-meld-mot de passe Une fenêtre de terminal montrant le processus d'installation de Meld.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-07-installing-meld.webp)
- Lorsque vous ouvrez Meld, vous verrez trois options : Comparaison de fichiers, Comparaison de répertoires et Vue de contrôle de version. Cliquez sur « Fichier ».
![fusion_004 Une capture d'écran de l'écran d'accueil de Meld.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-08-select-file-comparison-option-meld.webp)
- Deux menus déroulants apparaîtront, tous deux lisant « (Aucun) ». Cliquez sur l’un d’entre eux pour sélectionner un fichier à comparer.
![fusion_005 Une capture d'écran de l'écran Meld avec une surbrillance sur le premier sélecteur de fichiers.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-09-select-first-file-comparison-meld.webp)
- Cliquez sur l’autre menu déroulant pour sélectionner un deuxième fichier à comparer.
![meld_020 Une capture d'écran de l'écran Meld avec une surbrillance sur le deuxième sélecteur de fichiers.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-10-select-second-file-comparison-meld.webp)
- Cliquez sur le bouton « Comparer ».
![fusion_006 Une capture d'écran de l'écran Meld avec une surbrillance sur le bouton Comparer.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-11-select-compare-button-meld.webp)
- La fenêtre suivante récapitule toutes les différences trouvées entre deux fichiers. Les caractères rouges sont des différences et le fond bleu indique qu’il y a une différence dans cette ligne. Un fond vert indique qu’une ligne existe dans un fichier mais pas dans l’autre.
![fusion_007 Une capture d'écran du programme Meld avec une simple vue de comparaison de deux fichiers.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-12-sample-meld-interface.webp)
- Pour naviguer entre les différences, cliquez sur les boutons haut et bas dans la barre de menus. Vous pouvez également cliquer directement dans le document avec votre souris.
![fusion_008-2 Une capture d'écran du programme Meld mettant en évidence son bouton de navigation diff.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-13-select-diff-movement-meld.webp)
Manipulation de fichiers dans Meld
En plus de faire des comparaisons, Meld vous permet de modifier les fichiers comparés. Meld continuera à analyser le document à la recherche de modifications au fur et à mesure que vous modifiez l’une ou l’autre version, et vous pouvez appuyer sur Ctrl+ Zà tout moment pour annuler les modifications.
- Pour copier les modifications d’un fichier à un autre, cliquez sur les petites flèches noires entre les modifications. Cliquer sur la flèche sur le côté gauche, par exemple, utilisera la ligne du document de gauche pour écraser le document de droite.
![fusion_009 Une capture d'écran du programme Meld montrant les boutons de résolution de diff.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-14-select-changes-diff-meld.webp)
- Des lignes peuvent également être insérées dans des documents sans les écraser. Si vous maintenez la Ctrltouche enfoncée, vous verrez les flèches de la dernière étape se transformer en signes plus. Cliquez sur l’icône pour ouvrir une petite boîte de dialogue dans laquelle vous pouvez choisir où insérer une nouvelle ligne.
![fusion_010 Une capture d'écran du programme Meld montrant son invite d'ajout de diff.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-15-insert-unique-line-comparison-meld.webp)
- Enfin, tapez directement dans votre document. Insérez simplement votre curseur comme vous le feriez normalement et commencez à taper.
- Une fois que vous avez terminé d’apporter des modifications, cliquez sur le bouton « Enregistrer » pour enregistrer vos fichiers.
![meld_013 Une capture d'écran du programme Meld mettant en évidence son bouton de sauvegarde par fichier.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-16-save-file-comparison-meld.webp)
Création de fichiers diff à l’aide de Meld et diff
En plus de montrer les différences entre deux fichiers, vous pouvez également utiliser Meld pour créer des « fichiers diff ». Ce sont de petits morceaux de texte qui contiennent des instructions sur la façon d’appliquer les modifications d’une version de fichier à une autre. Ceci est utile si vous souhaitez distribuer rapidement des mises à jour de code sans partager l’intégralité de l’archive source.
- Ouvrez les deux fichiers que vous souhaitez comparer.
![Une capture d'écran du programme Meld montrant un simple diff. Une capture d'écran du programme Meld montrant un simple diff.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-17-open-sample-diff-file-meld.webp)
- Cliquez sur le menu Options dans le coin supérieur droit de la fenêtre.
![Une capture d'écran mettant en évidence le bouton d'options de Meld. Une capture d'écran mettant en évidence le bouton d'options de Meld.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-18-select-options-menu-meld.webp)
- Sélectionnez le sous-menu « Comparaison ».
![Une capture d'écran du menu des options de Meld avec une surbrillance dans le sous-menu Comparaison. Une capture d'écran du menu des options de Meld avec une surbrillance dans le sous-menu Comparaison.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-19-select-comparison-option-meld.webp)
- Cliquez sur la sous-option « Formater en tant que patch ».
![Une capture d'écran du sous-menu Comparaison avec une surbrillance sur la sous-option Format. Une capture d'écran du sous-menu Comparaison avec une surbrillance sur la sous-option Format.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-20-select-format-patch-meld.webp)
- Cela ouvrira une petite fenêtre où Meld imprimera l’intégralité du fichier diff entre vos deux fichiers. À ce stade, vous pouvez soit copier ce texte dans votre presse-papiers, soit l’enregistrer dans un fichier. Pour ce faire, cliquez sur le bouton « Enregistrer le patch ».
![Une capture d'écran de la sous-fenêtre Meld's Patch avec une surbrillance sur la Une capture d'écran de la sous-fenêtre Meld's Patch avec une surbrillance sur la](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-21-select-save-patch-meld.webp)
Bien que la création de fichiers diff dans Meld soit simple et directe, il existe des cas où il peut ne pas être possible d’accéder à une interface graphique lors de l’édition de code. Pour cela, vous pouvez également utiliser le diff
programme pour générer un fichier diff.
- Ouvrez un terminal et vérifiez s’il y a des différences entre les deux fichiers :
diff hello.c hello-1.c
![Un terminal montrant un simple diff entre deux fichiers. Un terminal montrant un simple diff entre deux fichiers.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-22-check-diff-status.webp)
- Créez un fichier diff simple en utilisant l’
-c
indicateur :
diff -c hello.c hello-1.c > hello.diff
![Un terminal affichant une sortie de fichier diff de base. Un terminal affichant une sortie de fichier diff de base.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-23-create-simple-diff-file.webp)
- En option, utilisez l’
-u
option qui combine les deux flux de texte en un seul bloc diff unifié. Cela peut être utile si vous modifiez beaucoup de code et souhaitez économiser de l’espace disque :
diff -u hello.c hello-1.c > hello.diff
![Un terminal montrant une sortie diff unifiée plus complexe. Un terminal montrant une sortie diff unifiée plus complexe.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-24-create-unified-diff-file.webp)
Utilisation de fichiers diff pour patcher le code source
Comme indiqué ci-dessus, un fichier diff vous permet de créer un résumé facilement partageable des modifications apportées à votre code source. Cependant, diff lui-même ne peut pas les appliquer aux fichiers existants. Pour ce faire, utilisez le programme compagnon de diff, patch
.
- Déterminez le code source d’origine que le fichier diff tente de modifier :
cat hello.diff | sed 1q
![Un terminal affichant l'en-tête du fichier source d'origine. Un terminal affichant l'en-tête du fichier source d'origine.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-25-determine-original-file-diff-file.webp)
- Créez une sauvegarde de votre code source d’origine :
cp hello.c hello.c.old
- Exécutez le programme patch avec le fichier d’origine sur le premier argument et le fichier diff sur le second :
patch hello.c hello.diff
![Un terminal affichant une simple commande de patch vers un seul fichier source. Un terminal affichant une simple commande de patch vers un seul fichier source.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-26-simple-patch-diff-file.webp)
Il est important de noter qu’un fichier diff peut également contenir des modifications qui s’étendent sur plusieurs fichiers. Appliquez ceci en plaçant tous les fichiers nécessaires à la mise à jour dans un seul répertoire et en exécutant patch < multi-file.diff
.
- Vérifiez si le programme correctif a réussi à mettre à jour votre fichier source en le comparant à votre sauvegarde :
diff -y hello.c hello.c.old
![Un terminal affichant la différence visuelle entre le nouveau fichier source et le fichier source d'origine. Un terminal affichant la différence visuelle entre le nouveau fichier source et le fichier source d'origine.](https://cdn.thewindowsclub.blog/wp-content/uploads/2023/05/use-diff-files-linux-27-check-diff-result.webp)
Pour votre information : Git est un puissant programme de contrôle de version multiplateforme. Découvrez comment vous pouvez l’utiliser pour gérer vos référentiels de code source sous Linux.
Questions fréquemment posées
Est-il possible de patcher un fichier plusieurs fois ?
Oui. Cependant, il est important de noter que la valeur du numéro de ligne dans un fichier diff est statique. Par exemple, appliquer un diff qui ajoute cinq lignes de code sur la ligne 1 ajustera le fichier entier de cinq lignes. Alors que les outils modernes peuvent compenser les changements à partir de différences uniques, en appliquer plusieurs peut créer des conflits de code inutiles.
Un fichier diff est-il similaire à un correctif Git ?
Oui. Diff et Git utilisent tous deux un type de format similaire pour leurs correctifs de code. Par conséquent, vous pouvez échanger les deux utilitaires lors de l’application de mises à jour à votre code source. Par exemple, courir git apply hello.diff
équivaut à courir patch < hello.diff
.
Pouvez-vous utiliser Meld avec un programme de contrôle de version tel que Git ?
Oui. L’une des fonctionnalités les plus puissantes de Meld est qu’il peut fonctionner de manière transparente avec n’importe quel programme de contrôle de version. Cela vous donne la possibilité d’interagir facilement avec vos référentiels en dehors de l’interface du terminal.
Pour cela, appuyez sur Ctrl+ N, puis cliquez sur le bouton « Vue de contrôle de version ». Ensuite, cliquez sur la liste déroulante en dessous et sélectionnez « Autre ». Cela fera apparaître une petite fenêtre où vous pourrez voir et charger votre référentiel Git.
Crédit image : Unsplash . Toutes les captures d’écran par Ramces Red.
Laisser un commentaire