Mam problem z użyciem rsync do tworzenia kopii zapasowych plików na moim zdalnym komputerze z systemem Linux na komputerze Mac. Za pierwszym razem wszystko jest w porządku, ale najwyraźniej istnieje problem ze znakami specjalnymi między komputerem Mac a Linuxem, ponieważ za każdym razem, gdy uruchamiam operację rsync, pliki ze znakami specjalnymi są najpierw usuwane, a następnie ponownie synchronizowane. Wygląda na to, że występuje problem z różnymi zestawami znaków.
Preferowanym rozwiązaniem wydaje się być użycie --iconv
opcji:
Możesz użyć opcji rsync --iconv do konwersji między UTF-8 NFC i NFD, przynajmniej jeśli korzystasz z komputera Mac. Istnieje specjalny zestaw znaków utf-8-mac, który oznacza UTF-8 NFD. Aby skopiować pliki z komputera Mac na serwer NAS, musisz uruchomić coś takiego:
rsync -a --iconv=utf-8-mac,utf-8 localdir/ mynas:remotedir/
Spowoduje to konwersję wszystkich lokalnych nazw plików z UTF-8 NFD na UTF-8 NFC na zdalnym serwerze. Zawartość plików nie zostanie zmieniona.
Brzmi dobrze i dobrze, ale mój Mac nie rozpoznaje tej opcji, ponieważ otrzymuję:
> MyMachine:~ Macuser$ /usr/bin/rsync -av --delete --iconv=utf-8,utf-8-mac user@linuxmachine:/home/linuxuser/Test/ /Users/Macuser/Test/
> rsync: --iconv=utf-8,utf-8-mac: unknown option
> rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-42/rsync/main.c(1333) [client=2.6.9]
Wszelkie sugestie dotyczące tego, co robić?
EDYCJA: wersja rsync na moim Macu to 2.6.9.
Macuser$ rsync --version
rsync version 2.6.9 protocol version 29
Jeśli ta wersja nie obsługuje tej --iconv
opcji, w jaki sposób mogę zaktualizować w bezpieczny sposób?
EDYCJA: W końcu doszedłem do wniosku, że oprócz aktualizacji rsync musiałem również zmienić kolejność, w jakiej określiłem zestawy znaków, więc dodałem odpowiedź poniżej.