2011-01-25 7 views
5

Używając rsync, mój katalog źródłowy ma wiele plików i katalogów. Moje miejsce docelowe zostało już zsynchronizowane, więc odzwierciedla takie pliki i katalogi.rsync przy użyciu --delete, ale nie chcesz usuwać dowiązań symbolicznych w miejscu docelowym

Jednak ręcznie utworzono dowiązanie symboliczne w miejscu docelowym, które nie istnieje w moim źródle.

Potrzebuję użyć operacji --delete w rsync. Czy istnieje sposób, aby rsync nie usuwał dowiązania symbolicznego?

+0

Może '--copy-dirlinks' pomoże, jeśli twoje dowiązanie symboliczne do katalogu , nie do zwykłego pliku. – 9000

Odpowiedz

-1

Czy docelowe docelowe łącze symboliczne wskazuje na katalog lub plik? Jeśli katalog, możesz użyć --keep-dirlinks.

+0

nie działa dla mnie –

4

Nie ma możliwości, aby osiągnąć ten sposób sugerowany ale najprostsze rozwiązanie opisanego problemu jest po prostu dodać nazwy plików dowiązania do rsync wyklucza wzór

like: --exclude="folder/symlinkname1" --exclude="folder/symlinkname2" 

jeśli istnieje wiele dowiązania You może zachować ich listę w pliku szablonu wykluczenia ten plik może być autogenerowany przez mały skrypt lub bash jedną linijkę ...

+0

działa. może użyć pliku --exclude-from ze wszystkimi wykluczeniami – mana

Powiązane problemy