LINUX.ORG.RU
ФорумAdmin

Максимальная длина имени файла

 


0

1

Как на линуксе делают nas для виндоус клиентов если с utf8 длинна русского имени файла не может быть больше 130 символов а японского 80. Может лайфхак какой есть для обхода ограничений?

Если кодировка в системе русская однобайтная то можно делать русские имена 255 символов длиной но при этом все символы которых нет в этой кодировке вызывают ошибку слишком длинное имя.

Может есть такая utf кодировка в которой русские буквы 1 байт занимают


Я не в курсе технических ограничений samba, но из твоего текста я так понимаю там есть какое-то ограничение в 256 байт на имя файла.

В utf8 символы могут занимать от 1 до 4 байт. А в utf16 всегда 2 байта. Я бы использовал utf16 и получил константные 128 символов на имя для любых языков.

anonymous ()
Ответ на: комментарий от anonymous

А в utf16 всегда 2 байта.

Всегда два байта в UCS-2. В UTF-16 может быть два или четыре байта на символ (а может уже и больше, тут не уверен).

Я бы использовал utf16 и получил константные 128 символов на имя для любых языков.

В линуксе имя файла может содержать любые байты, кроме '/' и '\0'. Так что работать твоё предложение совершенно точно не будет. Пример:

$ echo "hello" | iconv -t utf-16 | xxd
00000000: fffe 6800 6500 6c00 6c00 6f00 0a00       ..h.e.l.l.o...
im-0 ()

эти ограничения не самбы а файловых систем, вам нужна общая по файловым системам.

https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D1%8B%D1%85_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC

NTFS - 255 символов! например ставим устаревшую ReserFS и наслаждаемся теми же 255 символами…

anonymous2 ★★★★★ ()
Последнее исправление: anonymous2 (всего исправлений: 1)

Как на линуксе делают nas для виндоус клиентов если с utf8 длинна русского имени файла не может быть больше 130 символов а японского 80. Может лайфхак какой есть для обхода ограничений?

нету, проблема пользователя

https://community.synology.com/enu/forum/1/post/122320

fornlr ★★★★★ ()
Ответ на: комментарий от anonymous2

например ставим устаревшую ReserFS и наслаждаемся теми же 255 символами…

Нет, там прибили в байтах, когда в ядро включили. Надо тоже патчить в ядре #define.

boowai ★★★★ ()
Последнее исправление: boowai (всего исправлений: 1)