Używam rsync (1) do aktualizacji lokalnego repozytorium debiana. Niedawno na dysku, którego używam do przechowywania, zaczęło brakować miejsca, więc postanowiłem użyć dowiązań symbolicznych, aby pozwolić mi przenieść niektóre katalogi na inny dysk o podobnej wielkości.
Niestety wygląda na to, że rsync usuwa dowiązania symboliczne i uzupełnia prawie pełny dysk. Po kilku poszukiwaniach odkryłem --keep-dirlinks
opcję rsync, która wydaje się być dostosowana do rozwiązania mojego problemu.
Tyle że nie. Dowiązania symboliczne w celu nadal są usuwane.
Oto moje polecenie rsync:
rsync --recursive --keep-dirlinks --links --hard-links --times --verbose \
--delete --delete-excluded $EXCLUDE $SOURCE_EXCLUDE \
$RSYNC_HOST::$RSYNC_DIR/pool/ $TO/pool/
EXCLUDE rozszerzają się, aby wyeliminować dużą liczbę architektur, które mnie nie interesują, podobnie jak w przypadku --exclude binary-alpha/ --exclude disks-alpha ...
. Przed uruchomieniem rsync mój katalog puli wygląda następująco:
lrwxrwxrwx 1 root root 23 2014-09-22 13:58 contrib -> /u2/debian/pool/contrib
drwxrwxr-x 62 root root 4096 2012-04-09 03:02 main
lrwxrwxrwx 1 root root 24 2014-09-22 13:58 non-free -> /u2/debian/pool/non-free
Po uruchomieniu rsync otrzymuję:
receiving incremental file list
deleting non-free
deleting contrib
./
contrib/
contrib/a/
I tak dalej, a dowiązania symboliczne są zastępowane katalogami pełnymi plików.
Czy niektóre inne opcje rsync zakłócają --keep-dirlinks
? Których nie mogę łączyć? Czy może kolejność opcji powoduje mój problem?
źródło