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

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

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

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

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

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

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

давно пора перевести линукс на HPFS, там на имя файла отведено 4 килобайта (4096 байт), а вместе с путем к файлу 64к (65535 байт).

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

омг, один хочет перевести линукс на проприетарный HPFS (при наличии целого воза ФС для Linux), другой героически создает аналог Program Files, ТС пишет программу с функционалом однострочника на баше, которая тянет за собой целый Net Framework...

Иллюстрация к комментарию
раскрыть ветку (12)
2
Автор поста оценил этот комментарий

Такое ощущение, что те кто используют различные фреймворки не могут посмотреть на процесс программирования шире и гибче, чем оные предлагают. Не знаю как обьяснить, ну наверное как некий наркотик.

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

Если вы имели ввиду, что лучше писать без фреймворка, на голом С++/WinAPI или чистом javascript, или, или... Может где-то и лучше, но точно не быстрее, особенно если не готов вкладывать свое время в какую-нибудь мелочевку. Чтобы смотреть на программирование шире, нужно учить ASM, понимать как работает механизм предсказания ветвления, какие прерывания есть и зачем существуют и т.д и т.п., но правда тогда некогда будет программировать и создавать продукт. Можно даже попробовать написать свою операционку в учебных целях, как пробовал в студенчестве я. Смысл только, не факт что устроишься работать в нужное место.

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

Буду рад увидеть ваш однострочник на баше с ровно тем же функционалом. Но скорее всего не увижу. Net Framework не нужно тянуть, он и так предустановлен в актуальных виндах. Какой смысл отказываться от реально полезного фреймворка ради, видимо, предубеждений, совершенно необоснованных и непонятных мне? Еще моя программа тянет целую винду, о ней забыли упомянуть, ну это так, к слову)

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

Ну, для меня тут на Линуксе аргумент "тянет целую винду" вполне актуален.
А похожий скрипт по транслитерации названий файлов туда и обратно я писал на питоне.

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

На Линуксе описанной проблемы не будет, если вы конечно не будете файл, ранее записанный виндой на портативный диск в NTFS, копировать на самом Линуксе на его родные ФС.

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

перевести линукс на проприетарный HPFS (при наличии целого воза ФС для Linux),

а что делать, если целый воз ФС для линукс никак не может приблизится к переданной в опенсорс ФС 30 летней давности...

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

Ну, кстати. Откуда инфа про то, что в HPFS 4кб отводится на имя файла?

На сайте майкрософта несколько иная информация.


Может у HPFS еще какие-то киллер-фичи есть, чтобы к ней "приближаться"?

Мнговенные снапшоты там, прозрачное сжатие?

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

каким боком микрософт относится к HPFS?

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

Ну видимо, она разработана специалистами Microsoft (и IBM в том числе тоже), если wiki не врет.

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

wiki врет. 


HPFS собственная разработка IBM, затем на некоторое время, к работе над уже созданной OS/2 были привлечены аутсоросеры-MS, затем аутсоросеры ушли, а IBM дальше развивала и дорабатывала HPFS своими силами.


вклад MS в ней есть, но ни к созданию ни к окончательной версии они не имеют отношения.

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

Ну так что по поводу 4кб на имя файла? Где про это почитать?
Хоть одна киллер-фича то будет?

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

в редбуках мэйнфреймов OS/400 читай.  она оттуда.

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

Зачем, есть полно файловых систем где нет жёстко о лимита и буквально пару констант изменить, пересобрать и всё работает, например btrfs

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

zfs уже придуман
только nas надо брать нормальный, а не уебанские коробки за штуку баксов без дисков с железом от бюджетного телефона

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

Ещё веселее, если надо сохранить права доступа к файлам и папкам (для последующего восстановления). В zfs есть режим acl nfsv4, почти совместимый с виндовыми acl, но работать с ним можно только в bsd, в линуксовом порту zfs это уже сильно сложнее, если вообще возможно. Режим такой есть, а утилит управления нет.

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

Хммм… Ну, для шаредной папки с хомяками использовалось xattrs=sa и что-то еще в самбе… но это было во времена zfs 0.6.5 — с тех пор лет 7 прошло уже

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

Ну вот только в Illumos осталось смотреть настройки пингвина )))
Тут лучше в арчвики заглянуть ну и по статьям пошариться от 2020 года

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

и оперативка ему нужна ЕСС, обычная для этой ФС не рекомендуется.

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

Оперативка в принципе нужна с ecc, если у вас большие кеши — а они такие всегда. Тем не менее, статистика отказов памяти говорит о том, что без нее в soho-сегменте нормально живется. Чуть более рисковано, но нормально, никакого там ужас-ужаса.

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

Тогда думаю, придется писать еще одну программу по типу "Поиск слишком длинных имен файлов для Windows"))))

раскрыть ветку (10)
1
Автор поста оценил этот комментарий
Хз, есть бесплатный тотал командер, который спокойно копирует даже самые длинные пути (у меня есть игруху как раз с такими путями и длинными названиями файлов)
раскрыть ветку (7)
Автор поста оценил этот комментарий

Ограничение сверху задано Линуксом, не поможет короче тотал тут.

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

ой, тупанул, сорян


тогда вопрос - но ведь переименование названия файла автоматически делает его "нерабочим"?  или тут речь не а прогах, а о доках?

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

Речь в основном о доках и простых юзерах. Программы пишут спецы и не раздувают имена файлов. Моя программа сохраняет расширение имени файла, поэтому он будет открываться нормально. Другое дело, когда на этот файл есть ссылки из других файлов (ну, например, книга Excel, на которую ссылается еще книга, или dwg + ссылочные картинки). Тогда автопереименование не годится, придется вручную, осмысленно + где надо потом править ссылки. В этой программе такое тоже есть.

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

хм =)))) простые юзеры с никсами и виндою? =))))


по мне так - если в теме и есть кроссы, то юзай латиницу и короткие название везде и будет щааастье =)

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

Легко. Примеры:

1) предприятие с бухгалтерами, экономистами, инженерами и прочими простыми вин-юзерами. А файл-сервер админ запилил на никсах.

2) NAS типа "домашней" коробки Zyxel, QNAP и т.д., установленной простым юзером дома для хранения фото и видео. Там обычно ОС на основе никсов.


Обязать юзеров из первого примера юзать латиницу, сокращать имена - да проще уволиться сразу) Меня одна тетя (должность секретарь-референт), со стажем работы на ПК не менее 5 лет, однажды спросила "а как на рабочем столе создать папку?". Честно говоря, я от такого вопроса даже подзавис.

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

1 и кто там будет 259 символов делать у файла? =))))

2 это уже не простой юзверm imho

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

1) Я выше уже писал, что винда выделяет больше байт под символы, 255 кириллических (которые по два байта занимают) там еще прокатит, а в линуксе - только 127 поместится. Уже не так и много. Чаще я это видел в файлах у юр. отдела - там любят документ обозвать подробно, указав даты, номера, содержание. И не хватает буквально нескольких байт лимита. У остальных это чаще были веб-странички сохраненные. Я вот эту страницу сейчас сохранил - имя файла на ~170 байт тянет, это еще название статьи короткое. Бухи так любят статьи про расчет НДС и прочего сохранить себе на всякий.

2) Кому-то просто знакомые айтишники настраивают и уходят. Как роутер например, его ж тоже не каждый простой юзер осилит настроить. Работает годами, ну, пока диски не сдохнут. А потом "вот тут у меня коробочка какая-то была, на ней файлы были..."

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

штош, это будет первый гвоздичек в крышечку гробика виндовсика. )))

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

Судя по тому, что я вижу, как люди спокойно переходят на 11-ю версию и местами некоторые даже нахваливают, гвоздей понадобится еще не меньше пары вагонов. Увы, Linux, увы, массовый юзер делает выбор раз за разом не в твою пользу(

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