Comparer deux contenus de répertoires sur un Mac en utilisant diff

Si vous voulez voir la différence entre deux dossiers sur un Mac, ou comparer deux contenus de répertoires, vous pouvez facilement le faire à l'aide de la puissante commande diff.

Ce tutoriel va vous montrer comment comparer deux répertoires, et le contenu de ces répertoires, en utilisant le Terminal. Cette approche en ligne de commande affichera un fichier contenant les différences précises affichées entre deux dossiers cibles.

Pour réaliser cette comparaison, nous utiliserons l'outil de ligne de commande 'diff', diff est disponible sur tous les Macs, avec linux et autres systèmes d'exploitation Unix, donc c'est effectivement une solution multi-plateforme pour comparer les répertoires. Diff est assez simple à utiliser pour comparer facilement le contenu de deux répertoires, il suffit de suivre en utilisant la syntaxe détaillée ci-dessous.

Comment comparer le contenu de deux répertoires avec diff

Pour commencer, lancez le Terminal sous Mac OS (dans / Applications / Utilities /) et utilisez la syntaxe de commande suivante:

diff -rq directory1 directory2

Hit retour lorsque vous avez spécifié les répertoires appropriés à comparer. Ceci exécute la commande diff comparant directory1 et directory2 (si vous avez un dossier avec un espace dans le nom du fichier, placez-le entre guillemets comme ceci: "folder one"). Nous utilisons l'indicateur -rq car -r signifie qu'il est récursif pour inclure les sous-répertoires, et -q simplifie la sortie de la commande uniquement pour les différences affichées.

L'exemple de sortie de la commande peut ressembler à ceci:

$diff -rq directory1 directory2

Seulement dans le répertoire 1: example221.txt

Seulement dans le répertoire 1: SuperSecretDifferentFile.rtf

Seulement dans le répertoire 2: AmazingScript.py

Seulement dans le répertoire 2: MyFavoriteSong.mp3

Seulement dans le répertoire 2: MyFavoriteSpecialMovie.mp4

Vous pouvez également aller plus loin et rediriger la sortie de cette commande vers un fichier, disons qu'elle s'appelle differences.txt:

diff -rq directory1 directory2 >> differences.txt

Voici un exemple et comment l'impression réelle aura l'air. Supposons que nous comparions des dossiers nommés "ancienne musique" et "nouvelle musique", et que nous voulions que la sortie de la commande affiche la différence entre ces deux répertoires dans le fichier "musicfolders.txt", la syntaxe de commande suivante serait alors utilisée:

diff -rq "old music" "new music" >> musicfolders.txt

Maintenant, regardez dans le répertoire de travail actuel pour le fichier que vous venez de créer en produisant la commande diff, dans ce cas le fichier est musicfolders.txt et le contenu peut être visualisé dans n'importe quel éditeur de texte, ligne de commande ou autre. En ouvrant le fichier texte, vous verrez quelque chose comme ceci:

Only in old music: song1.mp3
Only in old music: song2.mp3
Only in old music: song3.mp3
Only in new music: instrumental1.mp3
Only in new music: instrumental1.mp3

Si vous voulez voir le fichier depuis la ligne de commande, essayez:

more musicfolders.txt

Sinon, naviguez simplement dans le répertoire contenant et ouvrez-le dans votre éditeur de texte favori.

Si vous préférez ne pas créer un fichier texte avec les modifications, laissez simplement la redirection de sortie de la commande. Vous voudrez peut-être rediriger la sortie vers quelque chose comme "plus" pour faciliter le scan:

diff -rq "old music" "new music" | more

La commande diff est assez puissante et il y a beaucoup d'autres options disponibles, utilisez la commande man diff pour obtenir tous les détails sur l'utilisation de diff ainsi que les nombreuses fonctionnalités disponibles.

Il convient de mentionner à nouveau que cette commande fonctionnera sous Mac OS X - toutes les versions - ainsi que sur la plupart des systèmes d'exploitation basés sur Unix.