Forum Linux.pl

Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: Kernel w 2007-11-05, 12:09:51

Tytuł: Porównywanie dwóch katalogów
Wiadomość wysłana przez: Kernel w 2007-11-05, 12:09:51
Witam!

Może ktoś pomoże jak to napisać?
Chcę porównać dwa zadane katalogi 'argumenty skryptu',aby ignorowały podkatalogi i żeby w wyniku tego wyświetlały listę plików identycznych w obu katalogach.

Pozdrawiam
Tytuł: Porównywanie dwóch katalogów
Wiadomość wysłana przez: xavery w 2007-11-05, 16:13:55
man diff
Tytuł: Porównywanie dwóch katalogów
Wiadomość wysłana przez: Kernel w 2007-11-06, 16:42:18
Napisałem coś takiego na brudno (czyt. na kartce), chodź wiem, że kod jest niepełny i zapewne nie dokońca poprawny, ponieważ nie posiadam distro linuxa. Może to ktoś za mnie sprawdzic?

#!/bin/bash
[ -d $1 -a -d $2 ] || { echo 'podaj w argumentach 2 katalogi' >&2; exit; }
ls $1 > /tmp/dir1-$$
ls $2 > /tmp/dir2-$$
diff /tmp/dir1-$$ /tmp/dir2-$$
rm /tmp/*-$$

P.S. xavery dzięki za podpowiedź.
Tytuł: Porównywanie dwóch katalogów
Wiadomość wysłana przez: xavery w 2007-11-06, 17:10:50
Tak na szybko bo się śpieszę - nie wystarczy coś takiego:

diff -Bbruqs katalog1 katalog2

?
Tytuł: Porównywanie dwóch katalogów
Wiadomość wysłana przez: Kernel w 2007-11-06, 17:20:31
Co dokładnie oznacza składnia polecenia -Bbruqs?
Tytuł: Porównywanie dwóch katalogów
Wiadomość wysłana przez: toranaga w 2007-11-06, 18:24:35
Odpowiedź (http://man.cx/diff(1)/pl)
Tytuł: Porównywanie dwóch katalogów
Wiadomość wysłana przez: Kernel w 2007-11-06, 18:40:58
toranga dzięki także za pokazanie strony dodałem do swojego kodu:
diff -x aby ignorował podkatalogi.
Teraz powinno być już wszystko ok.