Vous vous demandez comment utiliser la commande diff sous Linux et vous voulez savoir ce qu’est la commande Linux diff ? Cet article vous aidera à bien comprendre la commande et à répondre à la question sur l’utilisation de la commande diff. L’utilisation principale de la commande diff est de trouver la différence entre deux fichiers sous Linux.

Options pour la commande diff sous Linux :

  • -y utilisé pour afficher les différences dans les fichiers côte à côte
  • -s Cela peut être utilisé en combinaison avec d’autres commandes pour notifier si deux fichiers sont identiques
  • -r Si un répertoire est spécifié, cette option comparera tous les sous-répertoires trouvés.
  • -i Puisque Linux est sensible à la casse, cette option ignorera toutes les différences sensibles à la casse.
  • -B Ignore les lignes vides et ne les affiche pas comme des différences dans la sortie
  • -w Ignorer les espaces blancs des différences

Utilisation De La Commande Linux Diff Pour Comparer Deux Fichiers

Créons deux fichiers avec un contenu similaire avec quelques différences mineures. Voici les deux fichiers avec lesquels je travaille :

root@ubuntu:~# cat LinuxForDevices.txt 
Ceci est un exemple de texte
je vais écrire une ligne différente
dans un autre fichier


root@ubuntu:~# cat LFD.txt 
Ceci est un exemple de texte
je vais écrire une ligne différente
dans un autre fichier nommé LFD.txt
Une ligne supplémentaire

Comme vous pouvez le voir, il existe deux fichiers nommés LinuxForDevices.txt et LFD.txt où la seule différence est la dernière ligne qui ajoute la partie « named LFD.txt ».

Exécutons la commande Linux diff et trouvons les différences entre les deux fichiers.

root@ubuntu:~# diff LinuxForDevices.txt LFD.txt 
3c3,4
< dans un autre fichier
--
> dans un autre fichier nommé LFD.txt
> Une ligne supplémentaire

Sans aucun argument, il vous montre les lignes qui sont différentes dans les deux fichiers. Discutons un peu plus du résultat :

  • Le nombre 3C3, 4 représente la ligne 3 de file1 doit c hange à la ligne 3,4 de file2.
  • Le marqueur < signifie le premier fichier (LinuxForDevices.txt) tandis que le marqueur > signifie file2 (LFD.txt)
  • Les tirets entre les deux sont là pour différencier les deux fichiers.

Afficher Les Différences Côte à Côte à L’aide De La Commande Diff Sous Linux

Dans l’exemple ci-dessus, vous avez vu que la sortie de la commande affiche les résultats les uns après les autres. Mais pour des fichiers plus volumineux, il serait préférable de voir les résultats côte à côte. Cela peut être fait avec l’ option -y .

root@ubuntu:~# diff -y LinuxForDevices.txt LFD.txt

L’ajout de l’ option -y à la commande Linux diff affichera la sortie comme ci-dessous maintenant.

root@ubuntu:~# diff -y LinuxForDevices.txt LFD.txt 
Ceci est un exemple de texte Ceci est un exemple de texte
je vais écrire une ligne différente je vais écrire une ligne différente
dans un autre fichier | dans un autre fichier nommé LFD.txt
 > Une ligne supplémentaire

Parfait, c’est exactement ce que nous voulions voir!

Notifier Les Fichiers Identiques Avec La Commande Diff Sous Linux

Pour la démonstration, j’ai créé une copie du fichier LFD.txt et l’ai nommé LFD-copy.txt

root@ubuntu:~# diff -s LFD.txt LFD-copy.txt

Fichiers identiques de la commande Diff

Comme vous pouvez le voir dans la capture d’écran ci-dessus, lorsque j’ai exécuté la commande sans l’ option -s , la commande n’a produit aucune sortie.

Différences De Contenu De Répertoire à L’aide De La Commande Linux Diff

Au lieu de rechercher les différences entre les fichiers, si vous travaillez avec plusieurs répertoires contenant beaucoup de fichiers, la commande diff peut vous aider à identifier les fichiers présents dans un répertoire et pas dans l’autre. Ceci peut être réalisé en utilisant l’ option de commande -r .

Comme nous en avons discuté ci-dessus, la nature sensible à la casse de Linux considérera également les mêmes noms de fichiers avec une casse différente comme deux fichiers différents. Pour éviter cela, nous pouvons utiliser l’ option –ignore-file-name-case .

Pour illustrer cela, j’ai créé un dossier avec deux sous-dossiers à l’aide de la commande mkdir et déplacé nos 3 fichiers dans ceux-ci. Voici la structure de mon répertoire et de mes fichiers.

Arborescence

Maintenant, l’étape suivante consiste à identifier les différences entre les deux répertoires à l’aide de la commande diff, ce que nous ferons à l’aide de l’ option de commande -r .

root@ubuntu:~# diff -r dossier-1/ dossier-1/dossier-2/
Uniquement dans le dossier-1/ : dossier-2
Uniquement dans le dossier-1/ : dossier-3
Uniquement dans le dossier-1/ : LFD.txt
Uniquement dans le dossier-1/dossier-2/ : LinuxForDevices.txt

Cette structure de répertoire est très simple mais prouvera le fonctionnement de la récursivité. Cette option de commande permet à la commande diff de rechercher dans le répertoire et de comparer tous les fichiers et répertoires qu’il contient.

Ignorer Les Liens Vides Et Les Espaces Blancs Avec La Commande Diff Sous Linux

Certains fichiers auront simplement beaucoup de lignes vides et d’espaces qui chargeront inutilement l’écran en mettant en évidence les blancs comme différences. Nous pouvons ignorer ces espaces pour nous concentrer sur ce qui compte en utilisant les options -B et -w . Voyons en quoi les sorties diffèrent lorsque nous travaillons avec les deux commandes.

J’ai ajouté des lignes vierges supplémentaires dans notre fichier LinuxForDevices.txt.

root@ubuntu:~# cat LinuxForDevices.txt 
Ceci est un exemple de texte

je vais écrire une ligne différente

dans un autre fichier

Voyons maintenant ce que la commande diff de Linux affiche en sortie.

Lignes vierges de la commande Diff

Comme vous le voyez, les lignes vides sont mises en évidence en tant que différences et la première ligne indique 2d1, ce qui signifie que la 2e ligne doit être supprimée du premier fichier.

root@ubuntu:~# diff -B LinuxForDevices.txt LFD.txt 
4,5c3,4
< 
< dans un autre fichier
--
> dans un autre fichier nommé LFD.txt
> Une ligne supplémentaire

Comme vous pouvez le voir, la première ligne qui nous informe de supprimer la 2ème ligne ne s’affiche plus. Mais une ligne vide de LinuxForDevices.txt apparaît toujours. C’est parce qu’il nous manque une ligne de texte supplémentaire dans le fichier LFD.txt. Il veut que nous remplacions les deux dernières lignes de LinuxForDevices par les deux dernières lignes de LFD.txt pour qu’elles soient identiques.

Si nous remplaçons le -B par -w , au lieu d’ignorer les lignes vides, il ignorera les espaces et non les lignes vides entières. Mais si vous souhaitez que la sortie ignore à la fois les lignes vides et les espaces, vous pouvez utiliser la commande diff -Bw .

Ignorer La Casse Du Texte à L’aide De La Commande Diff Sous Linux

Pour démontrer et expliquer la sensibilité à la casse, nous allons créer deux nouveaux fichiers avec un seul mot, « Bonjour ». J’ai créé deux fichiers 1.txt et 2.txt avec les mots « Bonjour » et « bonjour » respectivement.

Si j’exécute la commande diff sans aucun argument, vous verrez qu’elle met en évidence la différence de casse entre les mots comme la « différence » entre les fichiers.

root@ubuntu:~# diff 1.txt 2.txt 
1c1
< Bonjour
--
> bonjour

Mais avec le simple ajout de -i ignorera cette différence et les fichiers seront considérés comme identiques. Comme nous l’avons vu précédemment qu’il n’y a pas de sortie pour des fichiers identiques, nous ajouterons également l’ option -s .

root@ubuntu:~# diff -s -i 1.txt 2.txt 
Les fichiers 1.txt et 2.txt sont identiques

Parfait! C’est exactement ce que nous attendions.

Conclusion

Pour terminer ce tutoriel sur la commande diff sous Linux, je voudrais vous faire savoir que les différentes options que j’ai présentées ci-dessus ne sont pas à considérer comme indépendantes les unes des autres. Bien qu’ils n’aient pas vraiment besoin de fonctionner avec les autres options, vous devez absolument combiner les options qui répondent à vos besoins.

Et bien que cette liste de démonstrations devrait répondre à la plupart de vos besoins, vous devriez certainement consulter la page de manuel de cette commande en utilisant la commande man.

Tux Linux Penguin Sudo Rm Rf Hacker d Ordinateur T-Shirt
  • Sudo Rm Rf ne peut être exécuté que par un vrai ninja du clavier et sans...
  • Un cadeau parfait pour tout programmeur, codeur, développeur web,...
  • Léger, Coupe classique, manche à double couture et ourlet à la base
BrosTrend 1200Mbps Linux USB Clé WiFi Adaptateurs de réseau, Ubuntu, Mint, Debian, Kali, Raspbian, Kubuntu, Lubuntu, Xubuntu, Zorin, Raspberry Pi 2+, Dual Band 5GHz 867Mbps, 2.4GHz 300Mbps
  • MULTI-OS SUPPORTÉ : Compatible avec les noyaux Linux jusqu'à 6.7, Ubuntu...
  • ARCHITECTURES SUPPORTÉES : x86_64/x86_32 (PC, VirtualBox...), aarch64/armhf...
  • VITESSE WI-FI RAPIDE : Vous pouvez obtenir une vitesse Wi-Fi de 867Mbps sur la...
  • MULTIPLES MODES DE FONCTIONNEMENT : Cet Linux clef USB WiFi prend en charge les...
  • SÉCURITÉ D'ENCRYPTAGE AVANCÉE : Sécurisez vos appareils et la...
  • DISTRIBUTIONS NON PRISES EN CHARGE : Actuellement NON compatible avec RHEL,...
Promo
Tapis de Souris en Ligne de Commandes Linux – Grand Tapis de Souris étendu. Raccourcis vers Le Programmeur Kali/Red Hat/Ubuntu/OpenSUSE/Arch/Debian/Unix. Tapis de Bureau de Jeu antidérapant
  • ✅ TAILLE GRANDE ET PARFAITE. La taille de 800 x 300 x 2 mm (31,5 x 11,8 x 0,09...
  • ✅ COMPILATION ÉTENDUE de lignes de commande couramment utilisées pour le...
  • ✅ GUIDE INTÉGRAL PARFAIT pour les programmeurs débutants et expérimentés...
  • ✅ BIEN CATÉGORISÉ - Les lignes de commande sont organisées de manière...
  • ✅ RÉFÉRENCE FONCTIONNELLE - Cette référence concise à la syntaxe Linux...
  • ✅ SANS COUTURE ET CONFORT – Tissu doux densément collé avec bords cousus...
  • ✅ IMPRESSION DE HAUTE QUALITÉ – Imprimé numériquement avec des encres de...
  • ✅ La base en caoutchouc naturel robuste et antidérapante offre une forte...
  • ✅ DURABLE - Protège votre bureau en verre/bois des rayures, des bosses et des...
  • ✅ CADEAU IDÉAL pour les collègues, les étudiants, les joueurs, les...