Неожиданные трудности взаимодействия между 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

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

490 постов5K подписчика

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

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

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

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

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

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

А Вы уверены что это проблема ext4 а не проблема samba или какой там ещё сервер используется для расшаривания дисков NAS-а в сеть? Просто, само по себе ограничение в 256 байт на длину всего пути при наличии ограничения в 4096 символов на длину имени файла выглядит крайне странно, а ext4 не дураки проектировали. А если это таки ограничение samba а не ext4 - возможно, стоило не имена файлов резать а залить их, например, через WinSCP, или, как тут уже советовали, запаковать сначала в архив?

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

Ну это в любом случае длина имени файла а не всего пути.

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

Уверен. 255 байт лимит у ext4 и т.п. Самба не причем. На кириллице это чуть более 128 символов (если с пробелами и символами первой половины ASCII). Не, можно конечно NTFS юзать на лине и расшарить самбой, не будет такого лимита жесткого. Только это не очень верный подход)

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