Czy istnieje sposób, aby rsync wydrukował pełne ścieżki plików do wszystkich plików, które są różne, bez faktycznego przesyłania plików?
Alternatywnie, potrzebuję sposobu różnicowania plików między dwoma drzewami (przez SSH) wyłącznie na podstawie zmiany rozmiaru lub czasu ostatniej modyfikacji.
--dry-run
zależą od użycia-v
i--progress options
- jeśli więc nie otrzymasz danych wyjściowych, sprawdź, czy te opcje są ustawione zgodnie z potrzebami. Zauważyłem, że wyśle nazwy katalogów, nawet jeśli pliki się nie zmieniły, ale możesz je odfiltrować, przekazując dane wyjściowesed
lub podobnie.Wolę używać formatu --out, aby zobaczyć szczegóły, przesyłając mniej:
źródło
rsync -rvn localdir targetdir
-N oznacza pokazywanie tylko akcji (bez wykonywania żadnej akcji).
Pamiętaj, że potrzebujesz „v”, bo inaczej nic ci nie pokaże! (reszta odpowiedzi zapomina o tym ...)
źródło
Opierając się na innych odpowiedziach i /server//a/618740/114520
--dry-run
(lub-n
), aby uniknąć modyfikacji--itemize-changes
(lub-i
), aby znaleźć zmiany--archive
(lub-a
), aby uzyskać wszystkie podkatalogiegrep
do odfiltrowywania wpisów zaczynających się od kropki (bez zmian)Co daje ci:
rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^\."
Jeśli chcesz tylko jeden sposób, możesz zmienić polecenie:
rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^(\.|<)"
rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^(\.|>)"
A jeśli potrzebujesz tylko plików, po prostu dodaj
awk
magię:rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^\." | awk '{print $2}'
źródło
Wybrałbym coś takiego:
Na przykład:
źródło
Prawda jest taka, że jeśli uruchomisz
rsync -v ...
i wyświetli ona nazwę pliku na ekranie, plik ten jest przesyłany (lub zostałby przeniesiony, jeśli wykonujesz --dry-run). Aby ustalić, dlaczego rsync miał zamiar go przenieść, użyj trybu wyszczególnienia: /server//a/618740/27813Jak zauważyli inni, domyślnie rsync po prostu porównuje na podstawie rozmiaru pliku i znacznika czasu, które muszą się zgadzać, w przeciwnym razie w tym pliku zostanie uruchomiona „kopia delta”. Jeśli naprawdę chcesz zobaczyć, które pliki są inne, użyj trybu sumy kontrolnej „-c”.
źródło