Admin/Dev

16
Juil.
2021

Vérifier que deux fichiers sont identiques avec le terminal

Publié par sky

Voici un nouveau tutoriel sur l'utilisation d'une application en ligne de commande. Aujourd'hui, nul besoin d'aller chercher dans Homebrew pour trouver notre sujet du jour. macOS dispose, d'origine, d'un petit panel d'outils, et c'est l'un d'entre eux que nous allons étudier dans ce guide.

Pour vérifier rapidement que deux fichiers sont identiques, on va d'abord comparer leurs poids et leurs types. Mais si tout concorde, comment être sûr que les deux fichiers sont réellement identiques ?

Nous pourrions ouvrir les deux fichiers dans un éditeur de texte, et comparer les caractères un à un. Mais cela pourrait être long et extrèmement fastidieux. Heureusement, il existe une application en ligne de commande qui fait cela : cmp.

Son fonctionnement est simple, il suffit d'appeler l'application, avec les deux fichiers en paramètres.

cmp chemin/vers/fichier1 chemin/vers/fichier2

L'application va comparer les deux fichiers byte par byte, et s'arrêter dès qu'elle trouve une différence, en l'indiquant dans le terminal, tel que

chemin/vers/fichier1 chemin/vers/fichier2 differ: char 1, line 1

Ici, les deux fichiers diffèrent dès le premier caractères.

Simple comme bonjour !

L'application est capable d'aller un peu plus loin, en ajoutant des options. Celle dont je me sers le plus est --silent ou -s. La commande peut être utilisée dans un script bash, sans que le terminal ne soit pollué par les résultats de tests intermédiaires tels que celui ci.

cmp -s chemin/vers/fichier1 chemin/vers/fichier2

Presque aussi utile, on retrouve l'option --bytes ou -n qui va limiter la comparaison à un certain nombre d'octets dans le fichier. Cette option est pratique lorsque l'on doit comparer de nombreux fichiers volumineux. En effet, plus le fichier est grand, plus le parcours réalisé par l'application est long. Lorsque l'on multiplie avec un certain nombre de fichiers, cela peut prendre un certain délai. Avec cette option, nous limitons la comparaison et considérons (peut être à tort) qu'à partir de x caractères, les fichiers sont identiques. Pour comparer les 20 premiers méga-octets

cmp -n 20971520 chemin/vers/fichier1 chemin/vers/fichier2

Dernière option qui peut s'avérer pratique, il est possible de passer quelques caractères, avec -i, ou dans sa version (très) longue --ignore-initial avant de commencer la comparaison. Les premiers octets sont l'en-tête du fichier, et malgré un contenu identique, des fichiers peuvent avoir une entête différent, et seront donc indiqués comme différents. Il est possible d'indiquer une valeur, qui sera identique pour les fichiers, ici le premier kilo-octet

cmp -i 1024 chemin/vers/fichier1 chemin/vers/fichier2

ou des valeurs différentes pour les deux fichiers

cmp -i 512:1024 chemin/vers/fichier1 chemin/vers/fichier2
 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
 
Tout accepter Tout refuser Gérer