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.
- 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
- 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,...
- ✅ 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...