Mam dwa katalogi z tysiącami plików, które zawierają mniej więcej te same pliki.
Jak mogę skopiować wszystkie pliki z katalogu dirA do katalogu dirB, które nie znajdują się w katalogu dirB lub jeśli plik istnieje w katalogu dirB, nadpisuje go tylko wtedy, gdy jest mniejszy.
Wiem, że istnieje wiele przykładów różnych znaczników czasu lub różnych rozmiarów plików, ale chcę je zastąpić tylko wtedy, gdy plik docelowy jest mniejszy i w żadnym wypadku nie jest większy.
Tło mojego problemu:
Wyrenderowałem dynmapę na moim serwerze Minecraft, ale niektórych kafelków brakuje lub są one uszkodzone. Następnie wykonałem renderowanie ponownie na innym komputerze z szybszym procesorem i skopiowałem wszystkie nowe renderowane pliki (~ 50 GB / 6.000.000 ~ 4-10 KB PNG) na mój serwer. Potem zauważyłem, że w moim nowym renderowaniu są również uszkodzone pliki.
left: stary render, prawo: nowy render
Dlatego nie chcę nadpisywać wszystkich plików, ale tylko te, które są większe (uszkodzone przenoszą mniej danych i są mniejsze).
statna plikach w obu lokalizacjach, aby uzyskać rozmiar pliku, a następnie skopiuj, jeśli spełnia twoje warunki
rsyncopcji, których potrzebujesz, ale nie znalazłem właściwej, więc poszedłem w prosty sposób




cpz kombinacjącmppoleceń lub lepiej korzystaj zrsyncwszystkich dostępnych opcji