Несовместимость файла ... не отображается в 'ls -a', но существует?

692
luca

Я запустил rsync(3.0.6) в Mac OS X 10.6 (Snow Leopard) для резервного копирования папки с внешнего жесткого диска (FAT32) на другой внешний жесткий диск (FAT32). Каким-то образом определенные файлы (а иногда они меняются!) Копируются с другим именем файла. Например:

campo_2006_valcanale_127.jpg --> CAMPO~40.JPG 

Конечно, в следующий раз rsync сжимается в верхний регистр и удаляет CAMPO ~ 40.JPG и копирует его снова, но почти всегда он снова портится. Иногда это работает, но и файлы, которые были в порядке, повреждаются.

Теперь, если я захожу в каталог назначения и делаю a, ls -aя не вижу файл, campo_2006_valcanale_127.jpgпотому что он был каким-то образом переименован, но файл campo_2006_valcanale_127.jpgдействительно существует! Я могу показать это, я могу написать это и т. Д., Просто это невидимо! Может быть, это просто имя файла, которое ведет себя странно ...

Я получаю такое же поведение, когда копирую файлы вручную (используя cp) и даже когда копирую их с помощью «Finder!», Я перетаскиваю файл, и его имя меняется!

Если у вас есть какие-либо подсказки, пожалуйста, скажите мне ... Я могу предоставить больше информации, если это будет необходимо.

1

1 ответ на вопрос

1
James Polley

Сокращенные имена файлов являются артефактом FAT32; как вы видели, любой файл с именем длиннее, чем старые 8.3 ограничения, получает сокращенное имя. Используйте правильную файловую систему, которая обрабатывает длинные имена файлов, а не использует причудливый хак, и у вас не возникнет этой проблемы (например, NTFS, HFS, ext - все обрабатывают длинные имена файлов изначально). В Википедии есть больше подробностей о взломе длинного имени файла, который использует FAT32

FAT32 также имеет другие проблемы, которые затрудняют работу rsync - например, он не хранит метки времени с какой-либо большой точностью, поэтому rsync не может использовать свою обычную эвристику.

В rsync FAQ есть запись о том, что rsync копирует одни и те же файлы много раз. Короче говоря, это, вероятно, временная метка, которая вызывает большую часть повторной синхронизации; modify-window=1или, возможно, modify-window=2следует это исправить.

да, я знаю это, но странно то, что иногда это происходит, а иногда нет .. Моя проблема в том, что я нахожусь в среде Mac / Windows ... и этот жесткий диск должен быть доступен обоим Mac компьютеры .. luca 14 лет назад 0
Что плохо, потому что нет хорошей файловой системы, к которой все Mac, Windows и Linux могут легко получить доступ, кроме fat32, так что мы все застряли в этом беспорядке * вздох * James Polley 14 лет назад 0
OSX и Linux могут использовать NTFS-3g для чтения / записи NTFS, так что * FAT32 * больше не нужно - бросьте его !! quack quixote 14 лет назад 0
Не из коробки; хотя большинство дистрибутивов Linux должны включать FUSE и ntfs-3g. James Polley 14 лет назад 0

Похожие вопросы