Mam jeden duży folder „X” w moim katalogu domowym i nieaktualną kopię tego na dysku flash - Y. Co to jest analog rm Y; cp X Y
, ale bez zastępowania już istniejących plików?
23
Istnieje wiele właściwości więcej do rsync niż poprzednia odpowiedź wspomina. Powinieneś zajrzeć do nich sam:
man rsync
Ale dla twojego problemu sugerowałbym:
rsync -a --delete X Y
W ten sposób odbiornik (Y) usunie każdy plik, którego nie ma w X. Pamiętaj jednak, aby zrobić to dobrze. Niepoprawnie użyte, ponieważ root może łatwo zabić twój system ... :)
rsync -a --delete X/ Y
. Ten mały slash po X sprawił, że działał on tak, jak powinien, więc może również pomóc innym. Wyjaśniono tutaj: abbeyworkshop.com/howto/unix/nix_rsync/index.htmlSpójrz na rsync (1) . Ma to na celu robienie dokładnie tego, co chcesz.
Obsługuje zdalne kopiowanie za pomocą własnego protokołu lub ssh, ale można go także używać lokalnie.
W zależności od dokładnego zachowania, które chcesz, możesz również przekazać tę
--update
opcję. Dzięki temu rsync nie będzie nadpisywał plików, które już istnieją w celu i są nowsze niż te w źródle.Jeśli chcesz usunąć dodatkowe pliki (tj. Pliki, które istnieją w Y, ale nie w X), możesz dodać
--delete
opcję.źródło
rm Y; cp X Y
zrobi to.Spróbuj użyć rsnyc, prawdopodobnie z następującą komendą:
-u
= nie zastępuj pliku w miejscu docelowym, jeśli jest zmodyfikowanyźródło
rm Y; cp X Y
zrobi to.Myślę, że niektóre funkcje, których szukasz w opcji -u (aktualizacja), faktycznie istnieją w tej opcji:
„--ignore-exist” - pomiń aktualizację plików, które istnieją w odbiorniku
źródło