Szukam czegoś, co porówna katalogi i pliki, tak jak Beyond Compare dla Windows.
Służy głównie do kontroli źródła, ale muszę go również użyć do wdrożenia.
Szukam czegoś, co porówna katalogi i pliki, tak jak Beyond Compare dla Windows.
Służy głównie do kontroli źródła, ale muszę go również użyć do wdrożenia.
Odpowiedzi:
Meld to narzędzie, które może porównywać i scalać pliki i katalogi. Jest to GUI analogiczny do narzędzi standardowych diff
i patch
wiersza poleceń. (Zobacz man diff i man patch, aby uzyskać więcej informacji na ich temat)
Ponadto wiele systemów kontroli źródła (takich jak bzr
lub git
) ma możliwość tworzenia różnic między wersjami.
beyond compare
poniżej. przełożony nad meld
Diff jest twoim przyjacielem.
diff -ur path1 path2
Spowoduje to porównanie wszystkich plików wspólnych dla ścieżki 1 i ścieżki 2.
Jeśli zmienisz -ur
na -urN
, wyświetli to także zawartość plików obecnych tylko w jednej ze ścieżek.
colordiff
i używanycolordiff -ur path1 path2
„Beyond Compare” jest również dostępne dla Linuksa.
Sprawdź adres URL pobierania: http://www.scootersoftware.com/download.php
Użyj diff
polecenia:
diff -u file1 file2
diff -u
wybiera format z kilkoma liniami kontekstu. Zwykły diff file1 file2
wyświetla tylko różne linie. Istnieje wiele innych opcji sterowania formatem wyjściowym, ignorowania różnic tylko białych znaków itp.
Jeśli chcesz zapisać wynik w pliku, przekieruj go:
diff -u file1 file2 >file1-file2.diff
Interfejs może nie być naprawdę seksowny, ale jest niezwykle potężny!
A jeśli byłeś przyzwyczajony do innego * dowódcy (takiego jak Norton lub podobni), nie zgubisz się.
Inspirowany tym wpisem na blogu .
Lista różnych plików:
diff -qr folder1 folder2
Wyświetlanie również treści:
diff -Naur folder1 folder2
Jeśli dwa katalogi nie znajdują się na tym samym komputerze, rsync
może to być najłatwiejsze rozwiązanie. Zwykle rsync
jest używany do synchronizacji katalogów, ale możesz go uruchomić w trybie pełnym i suchym, więc wyświetli tylko te pliki, które musiałby zmienić.
rsync -rvnc --delete folder1 server:/path/to/folder2
Możesz pominąć, c
jeśli chcesz porównać pliki na podstawie znaczników czasu i rozmiarów plików, aby przyspieszyć wszystko:
rsync -rvn --delete folder1 server:/path/to/folder2
Krusader to bezpłatne narzędzie (dostępne w Centrum oprogramowania), które pokazuje zawartość folderów w porównaniu i możesz synchronizować z wieloma różnymi opcjami. Możesz filtrować podczas synchronizacji i porównywania.
Aby porównać zawartość pliku, po prostu zaznacz dwa pliki, wybierz „plik”> „porównaj zawartość” i będą one porównywane litera po literze. domyślnym narzędziem porównywania używanym przez krusader jest domyślne narzędzie KDE „ Kompare ”. Możesz ustawić krusader, aby używał dowolnego innego narzędzia porównywania - jak na przykład jedno z powyższych.
To najbardziej kompletne rozwiązanie, jakie kiedykolwiek znalazłem i jest bardzo wygodne. I obsługuje wszystkie klawisze funkcyjne używane przez dowódcę północy (składnia północnego dowódcy).
Dowiedziałem się o hashdeep dwa tygodnie temu. I ma kilka silnych zalet:
meld
tego działa dobrze w przypadku bardzo dużych folderów. Gdy meld
staje się bardzo wolny, a interfejs nie odpowiada (zablokowany), funkcja mieszania działa tylko ze stałą prędkościąrsync
haszowania wykrywa przeniesione pliki - pliki o tej samej zawartości, tylko w innym katalogu.Pełne wyjście wygląda następująco:
...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG
hashdeep: Audit failed
Input files examined: 0
Known files expecting: 0
Files matched: 6233
Files partially matched: 0
Files moved: 3695
New files found: 19257
Known files not found: 4713
Dobrym sposobem na porównanie jest użycie „ znajdź ” z „ md5sum ”, a następnie „ diff ”.
Przykład:
Użyj find, aby wyświetlić listę wszystkich plików w katalogu, a następnie obliczyć skrót md5 dla każdego pliku i potokować go do pliku:
$find /dir1/ -type f -exec md5sum {} \; > dir1.txt
Wykonaj tę samą procedurę w innym katalogu:
$find /dir2/ -type f -exec md5sum {} \; > dir2.txt
Następnie porównaj wynik dwóch plików z „diff”:
$diff dir1.txt dir2.txt
Ta strategia jest bardzo przydatna, gdy dwa katalogi, które mają być porównywane, nie znajdują się na tym samym komputerze i musisz upewnić się, że pliki są równe w obu katalogach.
Innym dobrym sposobem na wykonanie tej pracy jest użycie git
git diff --no-index dir1/ dir2/
Z poważaniem!
Wypróbuj również FreeFileSync . Ma przyzwoity interfejs, akceptowalną szybkość porównywania, dobre filtrowanie wyniku porównania, różne sposoby synchronizacji. Jest wyposażony w narzędzie do monitorowania folderów (RealTimeSync), które może uruchomić FreeFileSync (właściwie dowolne polecenie lub skrypt) po zmianie tego określonego folderu (lub folderów) lub plików w nim zawartych. Naprawdę warto spróbować.
Więcej informacji o tym tutaj lub tutaj , gdzie masz PPA , zbyt
Z ich strony najważniejsze funkcje:
Porównaj pliki (według daty lub daty) i zsynchronizuj je.
Bez ograniczeń: dowolna liczba plików może być synchronizowana.
Obsługa Unicode.
Wsparcie sieciowe.
Wbudowana obsługa bardzo długich nazw plików (więcej niż MAX_PATH = 260 znaków).
Synchronizacyjna baza danych do propagacji usuniętych plików i wykrywania konfliktów
Obsługa wielu par folderów z odrębną konfiguracją
Pełna obsługa dowiązań symbolicznych systemu Windows / Linux i punktów połączenia systemu Windows.
Prosty i łatwo dostępny interfejs użytkownika: wysoce zoptymalizowany pod kątem szybkości i ogromnych zestawów danych.
Algorytmy całkowicie zakodowane w C ++.
Wszystkie wskaźniki postępu zoptymalizowane pod kątem maksymalnej wydajności!
Utwórz zadania wsadowe do automatycznej synchronizacji z graficznym interfejsem użytkownika lub bez niego.
Nacisk na użyteczność:
Tylko niezbędna funkcjonalność w interfejsie użytkownika: brak przeciążonych menu lub dżungli ikon.
Wybierz wszystkie foldery za pomocą przeciągania i upuszczania.
Ostatnio używana konfiguracja i ustawienia ekranu są zapisywane automatycznie.
Zachowaj i ładuj różne konfiguracje, przeciągając i upuszczając, przycisk ładowania lub wiersz poleceń.
Kliknij dwukrotnie, aby uruchomić zewnętrzną aplikację (np. Pokaż plik w Eksploratorze Windows)
Skopiuj i wklej wszystkie dane siatki jako tekst
Usuń zbędne / tymczasowe pliki bezpośrednio z głównej siatki.
Kliknij menu kontekstowe prawym przyciskiem myszy.
Kompleksowe informacje o stanie i raportowanie błędów
Sortuj listy plików według nazwy, rozmiaru lub daty.
Obsługa plików większych niż 4 GB.
Opcja przeniesienia plików do Kosza zamiast ich usuwania / zastępowania.
Ignoruj katalogi „\ RECYCLER” i „\ System Volume Information” z domyślnym filtrem. (Tylko Windows)
Zlokalizowane wersje są dostępne dla wielu języków.
Usuń przed kopiowaniem: unikaj niedoborów miejsca na dysku dla dużych zadań synchronizacji.
Filtruj funkcje, aby uwzględnić / wykluczyć pliki z synchronizacji (bez konieczności ponownego porównywania!).
Tymczasowo włącz / wyłącz określone pliki z synchronizacji.
Automatycznie obsługuj zmiany czasu letniego w woluminach FAT / FAT32.
Dostępna wersja przenośna (wybierana przez instalatora).
Natywna wersja 64-bitowa.
Sprawdź aktualizacje automatycznie z poziomu FreeFileSync.
Skopiuj zablokowane pliki za pomocą Windows Copy Shadow Copy Service. (Tylko Windows)
Twórz regularne kopie zapasowe za pomocą makr% time%,% date% w nazwach katalogów
Skopiuj czasy tworzenia / dostępu / modyfikacji plików i folderów podczas synchronizacji
Zaawansowana strategia blokowania pozwalająca na wiele procesów synchronizacji (np. Wielu pisarzy, ten sam udział sieciowy)
Dodałbym, że może zarządzać usuniętymi plikami, przenosząc je do Kosza lub folderu określonego przez użytkownika. Aby wskazać wadę: dokumentacja programu koncentruje się dość dużo na systemie Windows, mniej na Linuksie. Ale ładnie działa.
Możesz użyć rozproszonego:
sudo apt-get install diffuse
diffuse file1 file2
Możesz spróbować połączyć .
Są to repozytoria i zapewniają GUI do porównywania plików lub folderów.
IMHO FreeFileSync jest bardzo dobry i bardziej przydatny niż Meld. Jest szybki i stabilny, może przeprowadzać synchronizacje o dużych kosztach, a także eksportować wyniki porównania do pliku csv.
Wieloplatformowe, łatwe, bezproblemowe i zapisywanie profilu sprawia, że Jfilesync jest moim najlepszym wyborem
File_1.txt
Line1
Line2
File_2.txt
Line1
Line 2
Możesz użyć polecenia cmp
:
cmp -b "File_1.txt" "File_2.txt"
wyjście byłoby
a b differ: byte 11, line 2 is 62 2 40
możesz użyć polecenia diff :
diff -r --brief dir1 dir2
man diff
-r, --recursive
recursively compare any subdirectories found
-q, --brief
report only when files differ