Comme l'a dit @ sergiy-kolodyazhnyy, la longueur maximale du nom de fichier dépendra du système de fichiers et la grande majorité limitera la longueur des noms de fichiers à 255 octets.
Une omission notable de sa carte est les supports optiques. Alors que UDF et les extensions Rock Ridge ont la même limite de 255 caractères pour les noms de fichiers, ISO9660 sans Rock Ridge et Joliet ont tous deux des limites beaucoup plus strictes que vous pourriez réellement rencontrer si vous faites quelque chose comme la sauvegardeyoutube-dl
téléchargements.
Les noms de fichiers Joliet sont limités à 64 points de code UTF-16 ou à 103 d'entre eux si votre programme de mastering de disque a la possibilité de rompre avec les spécifications d'une manière qui ne semble pas causer de préjudice en pratique.
De même, les niveaux ISO 9660 2 et 3, sans les extensions Rock Ridge, sont limités à des noms de fichiers de 31 caractères ou 37 si vous jouez rapidement et librement avec la spécification.
ISO 9660: 1999, qui est prise en charge par genisoimage mais pas par des frontaux comme K3b, a une limite de 207 octets (sans Rock Ridge) ou 197 octets (avec Rock Ridge).
(Source: la genisoimage
page de manuel)
Quant à la longueur maximale du chemin , c'est une grosse idée fausse. Il n'y en a pas pour la plupart des systèmes de fichiers Linux.
Il y a une constante du nom PATH_MAX
, mais il est seulement le maximum pour certaines API POSIX , que vous pouvez travailler autour .
Les seules exceptions consécutives à cette convention "aucune limite sur la longueur du chemin" sont FAT32 et exFAT (32 760 caractères Unicode), NTFS et ReFS (32 767 caractères Unicode), UDF (1 023 octets) et ISO 9660 (peu clair, mais j'ai vu il indique 180, 207, 212 ou 222 octets).
Cela peut être facilement démontré en exécutant ce petit programme Python, puis en explorant les répertoires résultants.
import os
for X in range(20):
os.mkdir('x' * 255)
os.chdir('x' * 255)
My bash
, qui affiche tout le chemin dans l'invite, aura des problèmes avec cela. Cependant, mon zsh
, qui n'affiche que le dossier actuel dans l'invite, n'aura aucun problème et a même un pwd
intégré qui peut afficher l'intégralité du chemin de 5000 + octets sans problème.