LINUX.ORG.RU

Ограничение на максимальную длину файла при копировании с NTFS

 , , , ,


0

2

Копирую данные с компьютера под Windows, и некоторые файлы не удаётся скопировать из-за того, что длина имени файла оказывается слишком большой. Если я правильно понимаю, дело в том, что и в NTFS ограничение на длину имени файла 255 символов, а в ext4 — 255 байт, то есть, для имён, состоящих из кириллицы, раза в два меньше.

На всякий случай уточню, что ограничения в 255 символов и байт — это не про полный путь, а про длину имени файла (в каталоге).

Погуглил, вроде проблема известная, в архиве нашёл аналогичную тему от 2010 года, вообще говоря, можно нагуглить аналогичные вопросы, там часто предлагаются варианты вроде изменить длину имён файлов (не вариант) и перейти на однобайтную кодировку (не вариант), использовать NTFS под Linux (не хотелось бы). А есть ли какое-то другое решение?

★★★★

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

А что говорит википедия насчёт ограничения в vfs?

Всё оказалось гораздо занимательнее, чем я думал. В VFS нет ограничения на длину файла, есть только ограничение на общую длину пути - PATH_MAX, в данный момент == 4096 байт. Но при этом, википедия соврала про ReiserFS: https://github.com/torvalds/linux/blob/8b73ce6a4bae4fe12bcb2c361c0da4183c2e1b6f/fs/reiserfs/reiserfs.h#L1972 =(.

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

Ha-ha, classic.

Не, там проблема не в sqlite3 была, а в pthread_mutex_lock и полном непонимании, как им пользоваться и зачем он нужен. Без блокировок… ну… большую часть времени работало.

i-rinat ★★★★★ ()
Ответ на: комментарий от Deleted

Мне лень искать минимально работающий CMake. Да и зачем, если он везде уже новый? Если особенно хочется, можешь вообще прямым вызовом компилятора собирать, там же один файл. (А, нет, два, но всё равно можно.)

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