Как сказал @ sergiy-kolodyazhnyy, максимальная длина имени файла будет зависеть от файловой системы, а подавляющее большинство ограничивает длину имени файла 255 байтами.
Заметное упущение из его таблицы - оптические носители. В то время как расширения UDF и Rock Ridge имеют одинаковое ограничение в 255 символов для имен файлов, ISO9660 без Rock Ridge и Joliet имеют гораздо более строгие ограничения, с которыми вы можете столкнуться, если делаете что-то вроде резервного копирования youtube-dl
загрузок.
Имена файлов Joliet ограничены либо 64 кодовыми точками UTF-16, либо 103 из них, если ваша программа для мастеринга дисков имеет возможность отойти от спецификации способами, которые, как кажется, не причиняют вреда на практике.
Аналогично, уровни 2 и 3 стандарта ISO 9660, без расширений Rock Ridge, ограничены именами файлов из 31 символа или 37, если вы играете быстро и плохо со спецификацией.
ISO 9660: 1999, которая будет поддержана genisoimage но не фронтэнды как K3b, имеет предел либо 207 байт (без Rock Ridge) или 197 байт (с Rock Ridge).
(Источник: genisoimage
справочная страница)
Что касается максимальной длины пути , это большое заблуждение. Нет такой для большинства файловых систем Linux.
Там есть константа с именем PATH_MAX
, но это только максимум для определенных интерфейсов POSIX , которые вы можете работать вокруг .
Единственными вытекающими исключениями из этого соглашения «без ограничения длины пути» являются FAT32 и exFAT (32 760 символов Unicode), NTFS и ReFS (32 767 символов Unicode), UDF (1 023 байта) и ISO 9660 (неясно, но я видел оно указывается как 180, 207, 212 или 222 байта).
Это можно легко продемонстрировать, запустив эту маленькую программу на Python, а затем изучив получившиеся каталоги.
import os
for X in range(20):
os.mkdir('x' * 255)
os.chdir('x' * 255)
Мой bash
, который отображает весь путь в приглашении, будет иметь проблемы с ним. Однако my zsh
, которая отображает только текущую папку в приглашении, не будет иметь проблем и даже имеет pwd
встроенную функцию, которая может отображать весь путь длиной более 5000 байт без проблем.