Recherche sous Linux avec find sous Ubuntu
Table des matières:
- Comment utiliser la commande
diff - Format normal
- Format de contexte
- Format unifié
- Ignorer la casse
- Conclusion
diff
est un utilitaire de ligne de commande qui vous permet de comparer deux fichiers ligne par ligne. Il peut également comparer le contenu des répertoires.
La commande
diff
est le plus souvent utilisée pour créer un patch contenant les différences entre un ou plusieurs fichiers qui peuvent être appliqués à l'aide de la commande
patch
.
Comment utiliser la commande
diff
La syntaxe de la commande
diff
est la suivante:
diff… FILES
La commande
diff
peut afficher la sortie dans plusieurs formats, le format normal, contextuel et unifié étant les plus courants. La sortie comprend des informations sur les lignes des fichiers qui doivent être modifiées pour qu'elles deviennent identiques. Si les fichiers correspondent, aucune sortie n'est produite.
Pour enregistrer la sortie de la commande dans un fichier, utilisez l'opérateur de redirection:
diff file1 file2 > patch
, nous utiliserons les deux fichiers suivants pour expliquer le fonctionnement de la commande
diff
:
Ubuntu Arch Linux Debian CentOS Fedora
file2
Kubuntu Ubuntu Debian Arch Linux Centos Fedora
Format normal
Dans sa forme la plus simple, lorsque la commande
diff
est exécutée sur deux fichiers texte sans aucune option, elle produit une sortie au format normal:
diff file1 file2
La sortie ressemblera à ceci:
0a1 > Kubuntu 2d2 < Arch Linux 4c4, 5 < CentOS --- > Arch Linux > Centos
Le format de sortie normal se compose d'une ou plusieurs sections qui décrivent les différences. Chaque section ressemble à ceci:
change-command < from-file-line… --- > to-file-line…
0a1
,
2d2
et
4c4, 5
sont des commandes de changement. Chaque commande de modification contient les éléments suivants, de gauche à droite:
- Numéro ou plage de lignes du premier fichier. Caractère de modification spécial. Numéro ou plage de lignes du deuxième fichier.
Le caractère de modification peut être l'un des suivants:
-
a- Ajoutez les lignes.c- Changez les lignes.d- Supprimez les lignes.
La commande de changement est suivie des lignes complètes qui sont supprimées (
<
) et ajoutées au fichier (
>
).
Expliquons la sortie:
-
0a1- Ajoutez la ligne1du deuxième fichier au début du fichier1 (après la ligne0).-
> Kubuntu- La ligne de la deuxième ligne qui est ajoutée au premier fichier comme décrit ci-dessus.
2d2- Supprimer la ligne2du premier fichier. Le2après le symboledsignifie que si la ligne n'est pas supprimée, elle apparaîtra sur la ligne2du deuxième fichier.-
< Arch Linux- la ligne supprimée.
4c4, 5- Remplacez (modifiez) la ligne5du premier fichier par les lignes4-5du deuxième fichier.-
< CentOS- La ligne du premier fichier à remplacer.---- Séparateur.> Arch Linuxet> Centos- Lignes du deuxième fichier remplaçant la ligne du premier fichier.
-
Format de contexte
Lorsque le format de sortie de contexte est utilisé, la commande
diff
affiche plusieurs lignes de contexte autour des lignes qui diffèrent entre les fichiers.
L'option
-c
indique à
diff
de produire une sortie au format contextuel:
diff -c file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 6 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 7 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
La sortie commence par les noms et les horodatages si les fichiers sont comparés, et une ou plusieurs sections qui décrivent les différences. Chaque section ressemble à ceci:
*************** *** from-file-line-numbers **** from-file-line… --- to-file-line-numbers ---- to-file-line…
-
from-file-line-numbersetto-file-line-numbers- Les numéros de ligne ou la plage de lignes séparées par des virgules dans le premier et le deuxième fichier, respectivement.from-file-lineetto-file-line- Les lignes qui diffèrent et les lignes de contexte:- Les lignes commençant par deux espaces sont des lignes de contexte, les lignes qui sont les mêmes dans les deux fichiers. Les lignes commençant par le symbole moins (
-) sont les lignes qui ne correspondent à rien dans le deuxième fichier. Lignes manquantes dans le deuxième fichier. Les lignes commençant par le signe plus (+) sont les lignes qui ne correspondent à rien dans le premier fichier. Lignes manquantes dans le premier fichier. Les lignes commençant par le point d'exclamation (!) Sont les lignes qui sont modifiées entre deux fichiers. Chaque groupe de lignes commençant par!du premier fichier a une correspondance correspondante dans le deuxième fichier.
- Les lignes commençant par deux espaces sont des lignes de contexte, les lignes qui sont les mêmes dans les deux fichiers. Les lignes commençant par le symbole moins (
Expliquons les parties les plus importantes de la sortie:
- Dans cet exemple, nous n'avons qu'une seule section décrivant les différences.
*** 1, 6 ****et--- 1, 7 ----nous indiquent l'étendue des lignes des premier et deuxième fichiers inclus dans cette section. LignesUbuntu,Debian,Fedoraet la dernière ligne vide est la même dans les deux fichiers. Ces lignes commencent par un double espace- Arch LinuxLigne- Arch Linuxdu premier fichier ne correspond à rien dans le second fichier. Bien que cette ligne existe également dans le deuxième fichier, les positions sont différentes.Line+ Kubuntudu deuxième fichier ne correspond à rien dans le premier fichier.Line! CentOS! CentOSdès le premier fichier et les premières lignes! Arch Linux! Arch Linuxet! CentOS! CentOSdu deuxième fichier est changé entre les fichiers.
Par défaut, le nombre de lignes de contexte est par défaut de trois. Pour spécifier un autre nombre, utilisez l'option
-C
(
--contexts
):
diff -C 1 file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 5 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 6 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
Format unifié
Le format de sortie unifié est une version améliorée du format de contexte et produit une sortie plus petite.
Utilisez l'option
-u
pour indiquer à
diff
d'imprimer la sortie au format unifié:
diff -u file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian -CentOS +Arch Linux +Centos Fedora
La sortie commence par les noms et les horodatages des fichiers et une ou plusieurs sections qui décrivent les différences. Chaque section prend la forme suivante:
*************** @@ from-file-line-numbers to-file-line-numbers @@ line-from-files…
-
@@ from-file-line-numbers to-file-line-numbers @@- Numéro ou plage de lignes des premier et deuxième fichiers inclus dans cette section.line-from-files- Les lignes qui diffèrent et les lignes de contexte:- Les lignes commençant par deux espaces sont des lignes de contexte, les lignes qui sont identiques dans les deux fichiers.Les lignes commençant par le symbole moins (
-) sont les lignes qui sont supprimées du premier fichier.Les lignes commençant par le symbole plus (+) sont les lignes ajoutées à partir du premier fichier.
- Les lignes commençant par deux espaces sont des lignes de contexte, les lignes qui sont identiques dans les deux fichiers.Les lignes commençant par le symbole moins (
Ignorer la casse
Comme vous pouvez le remarquer dans les exemples ci-dessus, la commande
diff
est sensible à la casse par défaut.
Utilisez l'option
-i
pour dire à
diff
d'ignorer la casse:
diff -ui file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian +Arch Linux CentOS Fedora
Conclusion
La comparaison des fichiers texte pour les différences est l'une des tâches les plus courantes pour les administrateurs de systèmes Linux.
La commande
diff
compare les fichiers ligne par ligne. Pour plus d'informations, saisissez
man diff
dans votre terminal.
Commande chmod sous linux (autorisations de fichiers)
Sous Linux, l'accès aux fichiers est géré via les autorisations, les attributs et la propriété des fichiers. Ce didacticiel explique comment utiliser la commande chmod pour modifier les autorisations d'accès aux fichiers et aux répertoires.
Commande chgrp sous linux (changement de groupe)
Sous Linux, chaque fichier est associé à un propriétaire et à un groupe et dispose d'autorisations qui déterminent quels utilisateurs peuvent lire, écrire ou exécuter le fichier. La commande chgrpc change la propriété du groupe des fichiers donnés.
Commande cp sous linux (copier des fichiers)
cp est un utilitaire de ligne de commande pour copier des fichiers et des répertoires sur les systèmes Unix et Linux.







