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

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

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

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

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

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

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

А просто сценарий на bash не подошёл бы?

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

Так файлы же ещё на винде, их удобнее виндовыми средствами обрабатывать.

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

Посмотрел, что мне понадобится, чтобы запустить этот сценарий:

1) Установите WSL или Windows Subsystem для Linux.


Тогда уж давайте сценарий на PowerShell напишем, учитывая, с какой ОС и на какую копируются файлы. Ах, да, его еще и знать нужно)

С# + Visual Studio я уже знал.

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

PS не сложный так-то) это же не язык программирования

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

Чего это не язык? Все есть..

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

"PowerShell — это кроссплатформенное решение для автоматизации задач, которое включает оболочку командной строки, скриптовый язык"


https://learn.microsoft.com/ru-ru/powershell/scripting/overv...

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

Значить и язык в том числе)

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

но не программирования)

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

Не согласный я:)  я счетаю так: можно сортировку пузырьком сделать - значить язык программирования.

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

он всё-таки для автоматизации, а не для написания программ)

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

Да, да. "Вы не понимаете, это другое". Про HTML еще пойму)

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