Как долго могут быть имена файлов?

17

Как долго могут быть имена файлов и папок в Ubuntu Linux и какие символы допускаются в имени файла и имени папки в Ubuntu Linux?

Гаурав Агарвал
источник

Ответы:

21

Имена файлов в Linux были более 14 байтов в более ранней версии Unix. Но современная система Linux имеет 255 байтов для имен файлов.

Поскольку символу требуется 1 байт, длина становится 255 символов. Также папки рассматриваются как файлы в системе Linux

Смотрите эту ссылку для получения дополнительной информации

Анвар
источник
2
Имена файлов - utf-8, поэтому переменная длина: один байт для любого символа ascii. 2 или более для любого другого символа, например, £, ★, ≠, ☺, ¡, ¿, á,… и т. Д.
ctrl-alt-delor
1
Если имя файла указано в кодировке UTF, количество символов уменьшается с увеличением числа кодировок UTF. См. Serverfault.com/a/542452/363611 и комментарий под этим ответом
Сергей Колодяжный
4

Я не уверен, какая максимальная длина имени файла может быть (для ext4), но она больше зависит от файловой системы, чем сам Linux. На FAT32 я думаю, что это 255 символов. Вам, вероятно, никогда не нужно имя файла так долго.

Что касается разрешенных символов, любое значение байта разрешено в файловой системе ext4, за исключением байта NULL (и /, поскольку это разделитель каталогов 1 ). Однако вам следует ограничить имена файлов набором символов UTF-8, чтобы обеспечить самый широкий диапазон совместимости между приложениями и устройствами.

1. Как указано в руководстве по glibc , «любой символ, кроме нулевого символа, разрешен в строке имени файла», но a /в строке имени файла отделяет имя одного файла или папки от имени его родителя.

Добей
источник
Я бы сказал, предел до аз, аз и цифры. Добавление не буквенно-
цифровых символов требует
@ aking1012 Я хочу использовать '.' и '@' не рекомендуется.
Гаурав Агарвал
'' конечно хорошо. Я не видела, что я становлюсь шерстистым, но я предполагаю, что это могло бы быть в каком-то угловом случае. Синтаксические анализаторы вещей используют в качестве разделителей и не экранируют должным образом - это то, на что я ссылался - примеры: пробел, /, ", 'и т. Д.
RobotHumans
1
Период .широко используется в самой системе, поэтому это не проблема. Также @должно быть хорошо, я вижу почтовые серверы (например exim) с одним каталогом на учетную запись, которые содержат @и не имеют никаких проблем вообще.
Мариос Зиндилис
1
использование @ - это нормально. 2 замечания: Если вы используете что-то особенное, вы всегда можете избежать чарса. Также поймите, что иногда в качестве разделителя используется char: например, ssh использует его для разделения пользователя и системы: пример this: user@system:/dir/dir@dir/может быть ненадежным и непонятным).
Rinzwind