Я хочу скопировать большое количество файлов на USB-накопитель, отформатированный в формате FAT32 (и, к сожалению, форматировать его больше нельзя).
Многие из этих файлов имеют имена с такими символами, как :
и, ?
что FAT32 не позволяет. Пытаясь использовать cp
или rsync
, эти файлы не копируются, и об этом сообщается об ошибке.
Я не хочу переименовывать файлы в источнике, но мне также все равно, во что переименовываются файлы на целевом USB-накопителе.
Уточнение цели (относится и к другим комментариям): это для mp3-плеера в автомобиле, и программное обеспечение допускает только FAT32. Так что это не для целей резервного копирования. И причины, по которым имена файлов имеют странные символы, в том, что они есть, например, названия mp3-файлов или имена исполнителей.
Я попробовал пару вещей:
--iconv
Опция rsync . Кажется, это не сработало, но, возможно, я не использовал его правильно.rdiff-backup
, который я прочитал, делает это преобразование по умолчанию. Однако исходные файлы - это символические ссылки, по которым я хочу-L
перейти (т. Е. Опция rsync ), и из справочных страниц, похоже,rdiff-backup
эта опция отсутствует.
Любые другие предложения?
rsync
«s--iconv
вариант не сделал для того, что вы пытаетесь использовать его для.--iconv
выполняет преобразования набора символов, например, latin1 <-> utf8. Не то, что вы ищете.Ответы:
Rsync с
--iconv
будет вариант, но вы в первую очередь необходимо определить кодировку , где?
,:
и другие кодируются с символами, которые разрешены в файловых системах FAT.В вашем случае вы не используете всю мощь rsync для этого. Эта задача может быть выполнена в несколько строк сценария оболочки.
Вот Баш скрипт , который копирует
~/Music
в/media/usb99
, пропуская файлы, которые старше на цели, и обращенное:
и?
к_
. Он не обнаруживает столкновения (я полагаю, у вас нет и того,foo:bar.mp3
и другогоfoo?bar.mp3
).Этот скрипт работает под Zsh с незначительными изменениями: заменить
shopt -s dotglob globstar
наsetopt dot_glob
и[[ $target -ot $source ]]
на[[ ! -e $target || $target -ot $source ]]
.источник
Если это для целей резервного копирования, просто спрятать тарбол. Ни одно имя файла не мешает так.
источник