rsync из Solaris в Windows (кодировка символов в именах файлов)
Я пытаюсь использовать RSYNC для синхронизации файлов из системы Solaris 9 (SunOS 5.9) в Windows Server 2008 R2 (через cygwin)
Существует много файлов, содержащих такие символы, как "ä", "ö", "ü" или "ß". Которые отображаются правильно только тогда, когда пользователи Windows получают доступ к Solaris-Samba-Share. Rsync показывает эти символы как: #201 для "ü". После копирования в окна символы становятся "точками", например:
- <- Точка
А на солярисе они выглядят так: ▒
Можно ли использовать функциональность rsync "--iconv" для преобразования имен файлов в правильный формат? Как определить кодировку имени файла на машине соляриса?
1 ответ
Я столкнулся с той же проблемой и обнаружил, что вы можете использовать инструмент convmv, чтобы найти кодировку для файла, а затем использовать rsync --iconv
вариант.
- Скачайте convmv с https://www.j3e.de/linux/convmv/ и распакуйте
- Проверьте доступные кодировки с
convmv --list
- Попробуйте (или напишите скрипт), какая кодировка работает с convmv, например, с
convmv -f iso-8859-1 -t UTF-8 /path/to/file
(код возврата в$?
0, когда преобразование работало, а не 0 в противном случае) - Когда правильная кодировка найдена, используйте rsync с
--iconv
параметр, напримерrsync --iconv=ISO-8859-1,UTF-8 /source /destination