OVH Cloud OVH Cloud

Différence entre duex arborescences

14 réponses
Avatar
octane
Bonjour,

je dois visualiser des diff=E9rences entre deux arborescences. Les
diff=E9rences
seront fichier en plus ou en moins, et fichier modifie. Les dates ne
sont pas
pertinentes.

Je pense faire un script qui fera:

find $PATH1 -exec md5sum {} \; > rep1
find $PATH2 -exec md5sum {} \; > rep2

diff rep1 rep2

qui devrait bien d=E9grossir le travail, mais je me pose la question de
savoir
s'il existe un outil qui effectue ce genre de manipulations?

Merci

4 réponses

1 2
Avatar
Benoit Izac
Bonjour,

le 04/06/2007 à 12:09, a écrit dans le message
:

je dois visualiser des différences entre deux arborescences. Les
différences seront fichier en plus ou en moins, et fichier modifie.
Les dates ne sont pas pertinentes.

Je pense faire un script qui fera:

find $PATH1 -exec md5sum {} ; > rep1
find $PATH2 -exec md5sum {} ; > rep2

diff rep1 rep2


Le problème c'est qu'ici toutes les lignes seront différentes car $PATH1
et $PATH2 diffèrent et sont présent sur chaque en sortie de md5sum ;
il te faudrait donc utiliser sed (par exemple) pour supprimer $PATHx de
chaque ligne avant de faire ton diff.

Le plus simple est d'utiliser l'option « -r » de diff qui fait justement
ce que tu veux et est normalisée par Posix. Par contre, si je comprends
bien cette norme, attention tout de même car rien n'impose diff de
signifier si un fichier existe uniquement dans une des arborescences (en
pratique le gnu diff le fait).

--
Benoit Izac

Avatar
ALain Montfranc
a écrit
Bonjour,

je dois visualiser des différences entre deux arborescences. Les
différences
seront fichier en plus ou en moins, et fichier modifie. Les dates ne
sont pas
pertinentes.

Je pense faire un script qui fera:

find $PATH1 -exec md5sum {} ; > rep1
find $PATH2 -exec md5sum {} ; > rep2

diff rep1 rep2

qui devrait bien dégrossir le travail, mais je me pose la question de
savoir
s'il existe un outil qui effectue ce genre de manipulations?

Merci



Plkutot :

(cd $PATH1; find . -print0 | xargs -0 md5sum | sed 's/ /t/' | sort +1
) > rep1

idem pour rep2

Pourquoi ?
- parce que l'ordre des fichiers trouvés dépend de la maniere dont
l'arborescence a été créee : il faut trier sur le nom de fichier pour
comparer les choux avec autre chose que des carottes
- parce que xargs c'est mieux que -exec ;-)

Avatar
Thierry Boudet
On 2007-06-04, Mihamina Rakotomandimby (R12y) wrote:

find $PATH1 -exec md5sum {} ; > rep1
find $PATH2 -exec md5sum {} ; > rep2
diff rep1 rep2

Si $PATH1 et $PATH2 sont des répertoires qui contiennent plusieurs fichiers
et sous répertoires, qu'est-ce qui sera dans "rep1"?

Euh, ça coute rien d'essayer, et ça donne même des idées.



--
Le linuxien est bolchévique par définition. Il mange donc les enfants.
CQFD.
--{ Oxxxxxx, in f.m.b.l + Faut assumer }--

Avatar
Nicolas George
R12y wrote in message <f4142i$2m78$:
find $PATH1 -exec md5sum {} ; > rep1
find $PATH2 -exec md5sum {} ; > rep2
diff rep1 rep2

Si $PATH1 et $PATH2 sont des répertoires qui contiennent plusieurs fichiers
et sous répertoires, qu'est-ce qui sera dans "rep1"?


Bien, tu as posé la question. Maintenant, réponds-y.

Indication : qui interprète la redirection, et à quel moment ?

1 2