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-srcnazywany 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.txti b.txtsą zdalnie usunięte, jak również, ale d.txti README.txtsą 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 Ai public_htmlkatalog, 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 Ado public_htmlkatalogu, 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ć?
rsyncponieważ nie ma sposobu, aby dowiedzieć się, które pliki znajdują się już w folderze zdalnym. Może być konieczne znalezienie innego narzędzia.