Piszę sobie prościutki skrypt do tworzenia kopii zapasowej, ale z racji mojej maluteńkiej wiedzy na temat basha napotykam na problemy.
Stanąłem na etapie porównywania dwóch katalogów. Niby rezultat jest dobry, ale nie wiem czy robię to dobrze i czy może istnieje lepszy sposób na dokonanie tego.
Ale od początku.
Na początku zapisuje strukturę drzewa jednego i drugiego katalogu do osobnych plików, nazwijmy je: katalog1Zaw i katalog2Zaw.
plik katalog1Zaw
Kod: Zaznacz cały
plik01
plik02
plik03
katalog/plik01
katalog/plik02
katalog/plik03
Kod: Zaznacz cały
katalog/plik01
katalog/plik02
plik01
plik03
Kod: Zaznacz cały
diff --change-group-format=' %<' katalog1Zaw katalog2Zaw
Kod: Zaznacz cały
plik01
plik02
plik03
katalog/plik01
katalog/plik02
katalog/plik03
Jeżeli po w prawej kolumnie jest nazwa pliku, to należy przekopiować ten plik do katalogu drugiego.
Napisałem jakimś cudem, bo za nic nie mogłem rozgryźć, co do czego służy w diff.
Istnieją formaty grupy i formaty linii. I pomimo czytania podręcznika systemowego, nie potrafię poprawnie posługiwać się new-group-format, old-group-format, changed-group-format, unchanged-group-format.
W sieci też nie znalazłem żadnych wyjaśnień.
Dlatego pytam się, czy istnieje inny sposób na wyświetlenie różnicy w plikach w takim formacie, jaki przedstawiłem.
Fajnie byłoby, gdyby znalazła się osoba, która w prosty sposób wytłumaczyłaby mi działanie tego potworka, którego przypadkiem napisałem.
To jedna sprawa. Druga jak zapisać ten wynik, aby był bardziej zrozumiały - aby wyglądał np. tak:
Kod: Zaznacz cały
[katalog1] [katalog2] [kopiowanie]
----------------------------------------------
plik01 TAK
plik02 NIE
plik03 NIE
katalog/plik01 NIE
katalog/plik02 NIE
katalog/plik03 TAK
- jeżeli nic nie pisze w lewej kolumnie, skopiuj np. plik01 do katalogu2
- jeżeli jest nazwa pliku w lewej kolumnie, nie nie kopiuj.
Podejrzewam, że aby uzyskać takie kolumny i informacje (TAK, NIE) trzeba użyć sed, ale problem w tym, że nie wiem z jakiej strony się za to zabrać.
Problem dla mnie trudny, ale wierzę, że dla wielu z Was banalny.
Jeżeli znajdzie się osoba, która poświęci swój cenny czas za zerknięcie na ten problem, to będę ogromnie wdzięczny.
Pozdrawiam i liczę na Wasz odzew.