Неожиданные трудности взаимодействия между Windows и Linux в части сетевых папок

Неожиданные трудности взаимодействия между Windows и Linux в части сетевых папок Windows, Полезное, Помощник, Программное обеспечение, Linux, Поиск файлов, Скриншот

Как-то понадобилось мне скопировать терабайтную папку на 500 000 файлов на сервер-хранилку. Из них около 100 файлов наотрез отказались копироваться — оказалось, Linux не нравится, что имя файла длинное. А с виду так и не скажешь. А дело вот в чем.

В отличии от Linux, лимитирующей длину имен файлов и папок 255-ю байтами (файловая система ext4 и подобные), Windows в своей файловой системе NTFS ограничивает имена 255-ю двухбайтовыми символами в кодировке UTF-16. Набранные кириллицей имена в Windows могут быть длиной до 255 знаков, что невозможно в Linux, так как каждый символ кириллицы тоже будет занимать по два байта (в этой ОС обычно применяется кодировка UTF-8), быстро исчерпывая лимит.

Делюсь с вами написанной мною программой FindLongFilenamesLinux, которая и предназначена для поиска и переименования таких файлов и папок с именами, превышающими лимит, которые невозможно скопировать из Windows на NAS на основе Linux (с файловой системой ext4 и подобными). Мне это оказалось удобнее, чем каждый раз пробегаться по некопируемым файлам через Total Commander. Хотя тут кому как, лично мне не жаль было потратить на написание программы пару часов, зная, что подобная задачка с файлами встрянет еще не раз)

Для запуска программы требуется компонент .NET Framework 4.8+ (в актуальных билдах Win10/11 стоит по умолчанию, в Win7/8 устанавливается автоматически вместе с обновлениями).

Программа (Assets->FindLongFilenamesLinux.zip): https://github.com/carpediem-av/FindLongFilenamesLinux/releases

Исходный код (C#): https://github.com/carpediem-av/FindLongFilenamesLinux

Сайт автора: http://carpediem.0fees.us

Программы и Браузеры

484 поста5K подписчик

Добавить пост

Правила сообщества

-Ставьте наши теги, если Ваш пост о программе, приложении или браузере(в том числе о расширениях, дополнениях в нему), его недоработке, баге, обновлении. Это может быть пост - обзор или отзыв.

-При возникновении споров относитесь с уважением друг к другу, а так же приводите аргументы.

Разрешено всё, что не запрещено правилами Пикабу.

Вы смотрите срез комментариев. Показать все
10
Автор поста оценил этот комментарий

Была когда-то DOS, и все имена файлов помещались в 8.3. Теперь, гляди жь ты, 255 байт им не хватает. Что же это за имена файлов такие? "Жизнь, необыкновенные и удивительные приключения Робинзона Крузо, моряка из Йорка, прожившего двадцать восемь лет в полном одиночестве на необитаемом острове у берегов Америки близ устьев реки Ориноко, куда он был выброшен кораблекрушением, во время которого весь экипаж корабля, кроме него, погиб; с изложением его неожиданного освобождения пиратами. Написано им самим"?

раскрыть ветку (5)
7
Автор поста оценил этот комментарий

Речь не о длине имени файла, а о длине пути больше. Ext4 поддерживает имя файла до 4096 символов, но длина пути - 256. Т.е. там не так, как вы написали, а "users/local/config/CorpName/ProdName/appdata/main/something/ABCD/XYZ/somename/yas/conf.ini" на винде такие пути встречаются очень уж часто

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вы ошибаетесь, все наоборот. 4096 - лимит длины пути. 255 байт - лимит на имя файла.

1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

А кириллица еще и два байта в ext4 занимает, не забываем. А на вид имя не такое и длинное казалось бы.

Автор поста оценил этот комментарий

Ну скачанные веб-страницы (ага, встречается еще) например, у них часто имена длинные. Сами пользователи любят подробно писать в имени все подряд. А вообще не так и много  это встречается - на 500 000 файлов нашел 100 таких.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку