comparer le contenu de deux dossiers via Terminal

dafoo

Membre confirmé
9 Janvier 2002
64
0
48
Kent, UK
www.gueritte.net
Bonjour,
A chaque jour un nouveau probleme :
Je suis ammene a convertir de nombreux fichiers images d un format a un autre.
les fichiers xxx.tif contenus dans le dossier A, sont convertis en un format xxx.sid dans le dossier B.
Les fichiers contenu dans dossier A et dossier B ont des noms identiques, seul leur extension differe.

Afin de m assurer qu aucun fichier n a ete mis de cote, j aimerais comparer le contenu du dossier A et du dossier B, pour identifier les fichiers dans A non convertis.


Jusqu a present, je produisais des fichiers texte du contenu de A et B via le Terminal avec la commande suivante :

../dossierA/ moncompte$ ls *.tif >list_tif.txt
../dossierB/ moncompte$ ls *.sid >list_sid.txt

Puis dans mon tableur, je mettais dans une colonne le contenu de A, puis de B dans une autre colonne; et par soustraction A-B, je localisais le fichier manquant lorsque le solde etait different de zero.
J aimerai maintenant faire qqch de plus simple/efficace.

Y a t il une commande qui permet de comparer le contenu de deux dossiers ?

Une idee anyone ?

Stephane
 
Voila un shell qui fait ce que tu demandes (et du coup plus besoin de verification ;) ). T'as juste besoin d'etre dans le repertoire ou se trouve dossierA et dossierB.

#!bin/bash

treat_filename()
{
while read line; do
tiffilename=$line
sidfilename=`echo $line | sed 's/tif/sid/'`
cp dossierA/$oldfilename dossierB/$newfilename
done
}

ls dossierA/*.tif 2>/dev/null | treat_filename
 
Sinon si tu veux effectivement comparer les deux repertoires, il suffit de generer deux fichiers contenant la liste de tes images sans leur extension, et de faire un diff.
 
rsync permettra juste de copier, le traitement sur le changement d'extension devra quand meme etre fait , donc je vois pas trop comment utiliser rsync pour directement verifier que les deux repertoires contiennent les bons fichiers !!