Вопрос Невозможно скопировать на внешний жесткий диск из-за ошибки: «недопустимый или неполный многобайтовый или широкий символ»


У меня есть внешний USB HD, на который я хочу сделать резервную копию моей музыки.

Когда я пытаюсь использовать rsync или cp, большинство файлов копируются, но некоторые из них не из-за этой ошибки:

invalid or incomplete multibyte or wide character

Как это исправить?

Для справки: монтируется источник:

 /dev/sdb3 on /media/Music type vfat
 (rw,nosuid,nodev,noexec,noatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro,user)
 [Music]

Вот как монтируется внешний накопитель USB (место назначения):

 /dev/sdf1 on /media/username/Seagate Backup Plus Drive type fuseblk
 (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
 [Seagate Backup Plus Drive]

Любая помощь будет оценена!


4
2018-05-23 20:26


происхождения


у вас, вероятно, есть файлы с плохими именами .. вам нужно будет увидеть, какой из них дает вам ошибку, и проверить имя для проблем, таких как специальные символы или пути, которые слишком длинны ... У меня были проблемы с копированием в Windows, потому что путь и имя файла были слишком длинными. - John Orion
Файлы в порядке (по крайней мере, в Linux). Те, которые генерируют ошибки, как правило, являются файлами иностранных языков. Но разве не должно быть способа исправить это? - user2662680
его, вероятно, акценты или что-то в этом роде. Вам, возможно, придется переименовать эти файлы без акцентов или специальных символов ... попробуйте .. не повредит. найдите один из файлов, у которых есть проблемы с копированием, и попробуйте переименовать его в тест или что-то простое и посмотрите, можете ли вы его скопировать без ошибок. Если вы можете, то это имеет какое-то отношение к имени, и я видел это на паре с испанскими названиями. - John Orion
Переименование файлов было бы сложным. У меня есть огромная библиотека banshee, которая сопоставляется с конкретными именами файлов, и я был бы очень осторожен в изменении имени файла, если это возможно. - user2662680
«файлы в порядке (по крайней мере, в Linux)». конечно, но зачем делать такой комментарий, если система «vfat»? Они не подходят для «vfat». Вам нужно изменить диск на «ext» или изменить файлы на то, что «vfat» принимает как действительный. - Rinzwind


ответы:


Для кого-то любопытного я решил это. Сначала я решил, что кодировка на старом диске VFAT была ISO-8859-1 (очень распространенный для Windows). Затем я выполнил rsync команда с возможностью преобразования старой кодировки в UTF-8 и это сделало трюк.

Пример:

rsync -vaW --size-only --iconv=ISO-8859-1,utf-8 /media/Music/* '/media/username/Seagate Backup Plus Drive/Backup - Music/Music' > ~/rsynclog.txt

Надеюсь, что это поможет кому-то еще!


4
2018-05-24 17:44



Названия музыки могут иметь другие проблемы, чем нечетные символы, такие как пробелы и, возможно, хуже, круглые скобки (или другие команды bash). Предоставление их в командной строке без правильного цитирования является рискованным. Надеемся, что копии использовали имена каталогов, которые были предварительно проверены на наличие таких проблем. - ubfan1
Это гораздо лучшее решение, чем переименование файлов. Современная файловая система должна позволять международным символам, и если вы подходите к древней файловой системе, вы можете их опустить. Просто имейте в виду, что если вам нужно будет вернуться к оригиналу (авария HD или вы сделаете обновление на копии), вы получите немые имена файлов. - andrew lorien