Könyvtárak összehasonlítása "különleges" fájlokkal

Fórumok

Hi!

Adva van 2 könyvtár, amit rekurzívan szeretnék összehasonlítani. diff -r addig rendben is van, amíg a könyvtárak nem tartalmaznak olyan symlinket, ami nem létező fájlra mutat, illetve amíg nem tartalmaznak fifot. Előbbinél azt a hibaüzit kapom érthető módon, hogy No such file or directory, utóbbinál pedig azt, hogy File DIR1/pipe1 is a fifo while file DIR2/pipe1 is a fifo.

Hogy lehet ezekkel úgy elbánni, hogy a symlinknél csak azt nézze, hogy hova mutat (bár az sem baj, ha nem is nézi azt), ill. hogy a fifonál se dobjon hibát.

Köszi.

Esetleg valami más összehasonlító progi, ami az ilyen dolgokat is kezeli? (diff 2.8.1- em van).

Hozzászólások

(cd $DIR1 ; for fn in `find . -type f`; do diff $fn $DIR2/$fn; done)

v. vmi hasonló - a UNIX filozófia szerint egy program csak egy dolgot csináljon, de az jól; a diff összehasonlítani tud, a find pedig fájlokat keresni...

Szia!

Köszi a scriptet, de ezzel sajnos van néhány gondom :- (. Akkor nem találja meg a különbséget, ha DIR2- ben van olyan fájl, ami DIR1- ben nincsen. Ez persze megoldható úgy, hogy felcserélve lefuttatom őket, de az kétszeres futási időhöz vezet, ami még nem is lenne baj, de az egyszeres futási ideje a tesztkönyvtáramon ~6s, a diff meg ~0.3s alatt végez vele. Amúgy meg nem lenne baj, ha nem csak a szabályos fájlokat hasonlítaná össze, hanem a symlinkeket is aszerint, hogy hova mutatnak.

Nincs valami diff származék, ami nem ad hibás eredményt egy nem létező helyre mutató symlink, vagy egy fifo esetén? Lehet van másfajta fájl is, amivel gondja van, nekem csak ezzel a kettővel gyűlt meg a bajom.

Köszi.

Hi!

Engem olyan diff erdekelne, ami rendesen kezeli az ures fileokat is.

By(t)e
TBS::Antiemes