Chciałbym użyć rsync do ...
- usuń pliki po stronie odbierającej, które zostały również usunięte po stronie wysyłającej
- nie usuwaj innych plików, które znajdują się w katalogu rsynced po stronie odbierającej
Załóżmy na przykład, że mam katalog local-src
:
PRZED: local-src
lokalnie zawiera ...
a.txt
b.txt
c.txt
local-src
nazywany jest mój zdalny katalog, który chciałbym zsynchronizować z zawartością remote-src
.
PRZED: remote-src
zdalnie zawiera ...
a.txt
b.txt
c.txt
d.txt
README.md
Powiedzmy, że usuwam niektóre pliki w local-src
:
PO USUNIĘCIU LOKALNYM: local-src
lokalnie zawiera ...
c.txt
Jak mogę użyć rsync w taki sposób, aby pliki usunięte u źródła zostały również usunięte w miejscu docelowym, ale bez usuwania innych plików w miejscu docelowym. Na przykład chciałbym mieć następujące miejsca docelowe:
PO USUNIĘCIU LOKALNYM: remote-src
zdalnie zawiera ...
c.txt
d.txt
README.md
Oznacza to, a.txt
i b.txt
są zdalnie usunięte, jak również, ale d.txt
i README.txt
są pozostawione same.
Czy jest jakiś sposób na osiągnięcie tego za pomocą rsync?
EDYCJA: Wydaje się, że werdykt może być niemożliwy w przypadku rsync. Zapytano mnie, dlaczego potrzebuję tego, aby zilustrować mój przypadek użycia:
Powiedzmy, że mam serwer internetowy. Na tym serwerze mam kilka katalogów, powiedzmy, że mam katalog A
i public_html
katalog, z którego obsługiwana jest moja strona. Powiedzmy, że mam zautomatyzowany proces, który tworzy pliki w katalogu A
. Chciałbym rsync (lub synchronizacja za pomocą innego narzędzia) pliki wygenerowane lub aktualizowane w A
do public_html
katalogu, nie usuwając innych dowolnych plików, które mogą być w zasięgu public_html
. Z pewnością nie chcę, aby rsync przypadkowo usunął moją witrynę.
Jeśli rsync nie jest narzędziem do tego zadania, czy ktoś inny wie, jak to zrobić?
rsync
ponieważ nie ma sposobu, aby dowiedzieć się, które pliki znajdują się już w folderze zdalnym. Może być konieczne znalezienie innego narzędzia.