Chciałem zapytać, czy jest jakiś powód, aby nie używać rsyncwszystkiego i porzucić cp?
Nie wiedziałem o tym, rsynca teraz nie wiem, dlaczego cpkiedykolwiek jest potrzebny.
Która instalacja? Linux? Który? Unix? tak samo. BSD? Nigdy nie wiesz, co jest domyślnie.
terdon
5
Naprawdę nie ma „domyślnej instalacji” dla Linuksa. Każda dystrybucja ma swój zestaw podstawowych pakietów i wiele ich odmian. Również wtedy, gdy trzeba pracować na wielu systemach, korzystanie z narzędzi dostępnych wszędzie sprawia, że wszystko jest prostsze.
Mat
4
@Mat: Istnieje domyślna (lub podstawowa) instalacja w zakresie, w jakim dystrybucje linuksowe są zgodne, poprzez podstawowy obszar użytkownika GNU, z POSIX, który wymaga (i określa funkcjonowanie), cpale nie rsync: pubs.opengroup.org/onlinepubs/007904875 /utilities/contents.htm
goldilocks 15.09.13
1
Jestem prawie pewien, że Debian GNU / Linux domyślnie instaluje rsync. To jednak nie dostępne w środowisku instalacyjnym i ratowniczej. (Użyłem tego wcześnie dzisiaj, aby przenieść zawartość mojej partycji głównej z jednego dysku na drugi. Użyłem instalacyjnego DVD 7.1.0 amd64.)
CVn
Odpowiedzi:
24
Ściśle mówiąc tak, zawsze możesz użyć rsync. Od man rsync(moje podkreślenie):
Rsync to szybkie i niezwykle wszechstronne narzędzie do kopiowania plików. Może kopiować lokalnie, do / z innego hosta przez dowolną zdalną powłokę lub do / z zdalnego demona rsync. Oferuje dużą liczbę opcji, które kontrolują każdy aspekt jego zachowania i pozwalają na bardzo elastyczną specyfikację zestawu plików do
skopiowania. Słynie z algorytmu transferu delta, który zmniejsza ilość danych przesyłanych przez sieć, wysyłając tylko różnice między plikami źródłowymi a istniejącymi plikami w miejscu docelowym. Rsync jest szeroko stosowany do tworzenia kopii zapasowych i kopii lustrzanych oraz jako ulepszone polecenie kopiowania do codziennego użytku.
Teraz czasami nie warto wpisywać tych kilku dodatkowych postaci, aby użyć czołgu do zabicia muchy. Ponadto rsyncczęsto nie jest instalowany domyślnie, więc cpdobrze jest mieć.
Masz na myśli, że nie jest dostępny w ramach instalacji domyślnej, ale jako osobny plik do pobrania?
Jim
1
@Jim tak, czasami musisz się zainstalować w rsynczależności od systemu, w którym się znajdujesz. Jeśli nie masz rootdostępu, może to być trudne. cpjest POSIX i zawsze tam będzie.
terdon
9
cpjest częścią jądra GNU, więc zawsze jest instalowany na każdym systemie Linux, podczas gdy rsyncnie jest.
Martin von Wittich,
1
sometimes it is just not worth typing those few extra characters- Alias pcp(dla „kopii postępu”) do tego;)
Izkata
19
Rsync może być wolniejszy niż cpw niektórych sytuacjach. Na przykład, gdy miejsce docelowe istnieje i rsync kończy kilka drogich porównań dla każdego bloku, nie znajduje równych bloków i kopiuje pełny plik źródłowy.
Również gdy pliki docelowe nie istnieją, rsync nie zapewnia żadnej przewagi nad cp.
Poniżej metodologia kopiowania rsync jest znacznie wolniejsza. Zobacz unix.stackexchange.com/questions/374071/… . Ciąg cp pokazuje (od tego zapisu), prostą sekwencję operacji odczytu 32 KB / 32 KB zapisu. Tymczasem Rsync wykonuje odczyt / 4092-bajtowy + 4-bajtowy zapis do gniazda / odczyt z gniazda / 250KB zapis do pliku. Robię rsync 36T plików o mieszanym rozmiarze przy przepustowości 130 MB / s. Potrafię potroić to za pomocą cp -a. rsync wygrywa, jak mówisz, gdy chcesz „sprawić, aby” wyglądało to „tak” w katalogach, które są już podobne.
Mike S
7
Myślę, że rsyncnie radzi sobie z kopiowaniem rzadkich plików w prosty sposób. cpdomyślnie obsługuje to bardzo dobrze.
rsync
nie wszędziecp
jest dostępne .cp
ale niersync
: pubs.opengroup.org/onlinepubs/007904875 /utilities/contents.htmOdpowiedzi:
Ściśle mówiąc tak, zawsze możesz użyć
rsync
. Odman rsync
(moje podkreślenie):Teraz czasami nie warto wpisywać tych kilku dodatkowych postaci, aby użyć czołgu do zabicia muchy. Ponadto
rsync
często nie jest instalowany domyślnie, więccp
dobrze jest mieć.źródło
rsync
zależności od systemu, w którym się znajdujesz. Jeśli nie maszroot
dostępu, może to być trudne.cp
jest POSIX i zawsze tam będzie.cp
jest częścią jądra GNU, więc zawsze jest instalowany na każdym systemie Linux, podczas gdyrsync
nie jest.sometimes it is just not worth typing those few extra characters
- Aliaspcp
(dla „kopii postępu”) do tego;)Rsync może być wolniejszy niż
cp
w niektórych sytuacjach. Na przykład, gdy miejsce docelowe istnieje i rsync kończy kilka drogich porównań dla każdego bloku, nie znajduje równych bloków i kopiuje pełny plik źródłowy.Również gdy pliki docelowe nie istnieją, rsync nie zapewnia żadnej przewagi nad cp.
źródło
Myślę, że
rsync
nie radzi sobie z kopiowaniem rzadkich plików w prosty sposób.cp
domyślnie obsługuje to bardzo dobrze.źródło
-S
flagą.sparse
.Ponieważ
cp
w rsync brakuje tej flagi:źródło
-n
rsync (tryb próbny), który może być swego rodzaju substytutem tej funkcji.