Il seguente comando copia i file ricorsivamente da $ MIRROR_SOURCES relativi a $ MIRROR_SOURCE a $ MIRROR_DEST; ma il flag di cancellazione non funziona.
rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST
Il seguente comando copia i file ricorsivamente da $ MIRROR_SOURCES relativi a $ MIRROR_SOURCE a $ MIRROR_DEST; ma il flag di cancellazione non funziona.
rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST
Risposte:
Leggere --Elimina nel man rsync
con attenzione, sottolineatura mia:
Questo dice a rsync di cancellare file estranei dal lato ricevente (quelli che non sono sul lato di invio), ma solo per le directory che vengono sincronizzate . Devi aver chiesto a rsync di inviare l'intera directory (es. "Dir" o "dir /") senza usare un carattere jolly per i contenuti della directory (es. "Dir / *") poiché il carattere jolly è espanso dalla shell e rsync ottiene così un richiesta di trasferimento di singoli file, non della directory principale dei file. Anche i file esclusi dal trasferimento vengono esclusi dall'eliminazione a meno che non si utilizzi l'opzione --delete-excluded o contrassegna le regole come solo corrispondenti sul lato mittente (vedi i modificatori di inclusione / esclusione nella sezione REGOLE FILTRO).
Il punto cruciale della trama è che lo fa solo per ciò che specifichi di essere sincronizzato e dipende dal fatto che tu abbia specificato un carattere jolly o meno, se non lo vuoi, ma invece vuoi che succeda ovunque, allora puoi specificare --delete-excluded
bandiera pure.
$MIRROR_SOURCES
che non sono in$MIRROR_SOURCE
?