Odpowiedzi:
Spróbowałbym,
rsync -a /from/file /dest/file
można korzystać z innych opcji, takich jak --append, -P (--partial --progress). Aby uzyskać więcej informacji, zobacz man rsync .
Lub jeśli używasz, cpużyj cp -u.
z man cp:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
cp -umoże się nie przejmować, ponieważ sprawdza tylko znaczniki czasu, a nie rozmiar ... Więc musisz touchnajpierw znaleźć pliki źródłowe, jeśli musisz go użyć . (Lub po prostu użyj rsync.)
W przypadku częściowego przesyłania plików cpmoże nie być to, czego potrzebujesz.
Sugeruję użycie rsynczamiast tego. Nawet jeśli przesyłanie się nie powiedzie, możesz po prostu ponownie uruchomić polecenie w późniejszym czasie i skopiuje tylko brakujące pliki.
Przykład:
$ rsync -aPEmivvz from/ to/
(skopiuje from/do to/katalogu)
Ponieważ rsyncsynchronizowanie i sprawdzanie po każdym transferze zapewnia prawidłowe kopiowanie plików, jest banalne.
Ten zestaw -aPEmivvzjest moim standardowym wyborem do kopiowania plików za pośrednictwem sieci lub dysków zewnętrznych, w tym urządzeń wtykowych, takich jak karty SD itp.
Są to przełączniki, których używam prawie zawsze:
-a: „archiwum”, obejmuje -rlptgo(rekurencyjne, dowiązania symboliczne jako dowiązania symboliczne, uprawnienia, czasy, grupa, właściciel)
-P: „częściowy postęp” pokazuje ładny pasek postępu dla każdego pliku
-E: „wykonywalność” zachowuje, czy jest wykonywalna czy nie
-m: „noempty” przycina puste katalogi
-i: podsumowanie zmiany wydruku „podsumowanie” dla wszystkich aktualizacji
-vv: „bardziej szczegółowy”
-z: „kompresja”
Nie należy cpdo tego używać . Jak powiedzieli inni, nie jest to właściwe narzędzie do pracy. Właściwe narzędzie będzie zależeć od twoich celów.
Jeśli potrzebujesz tylko prostej kopii:
rsync /source /destinationz pewnym poziomem flag. Zobacz inne odpowiedzi na kilka naprawdę dobrych przykładów.
Jeśli chcesz mieć aktualizacje dwukierunkowe
unisonjest droga. Rsync nie radzi sobie zbyt dobrze w rozwiązywaniu konfliktów z synchronizacjami dwukierunkowymi. Specjalnie usuwa. Więc chcesz, aby odpalały się dwukierunkowe kopieunison
Jeśli chcesz tworzyć kopie zapasowe, a pliki są oparte na tekście, możesz spróbować użyć git. Git można uruchamiać lokalnie, nie ma potrzeby używania „serwera”. W rzeczywistości serwery git są tylko metodami udostępniania plików. Możesz całkowicie mieć repozytorium git na dysku kopii zapasowej i „wypychać” go. Ponownie działa to tylko wtedy, gdy pliki są oparte na tekście i próbujesz uzyskać kopię zapasową w jedną stronę.
Ponownie, jeśli masz zamiar wykonać kopię zapasową (i nie tylko raz), spójrz na deja-dupe, BackIntime lub podobne opcje. Wykonują migawki danych w danym momencie. Wszystkie uruchamiają rsync pod maską.
Możesz także ponownie skopiować wszystkie pliki, poprosić o potwierdzenie każdego zastąpienia, a następnie automatycznie odpowiedzieć „nie” na pytanie:
yes n | cp -i /source /dest
(prawdopodobnie użyłeś więcej opcji, na przykład -r, więc po prostu dodaj je jak cp -pri /source /dest...)