Soluzione 1:
Consulta la pagina di Wikipedia sul confronto dei file system, in particolare nella colonna Lunghezza massima del nome file .
Ecco alcuni limiti di lunghezza dei nomi di file nei file system più diffusi:
BTRFS 255 bytes
exFAT 255 UTF-16 characters
ext2 255 bytes
ext3 255 bytes
ext3cow 255 bytes
ext4 255 bytes
FAT32 8.3 (255 UCS-2 code units with VFAT LFNs)
NTFS 255 characters
XFS 255 bytes
Soluzione 2:
Ho letto qui che il limite di lunghezza del percorso è nelle intestazioni di sistema. C'è anche il limite di lunghezza del nome file. Sul mio sistema è file:
/usr/src/linux-headers-2.6.38-10/include/linux/limits.h
e C-lang definisce:
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
e altri ancora.
Soluzione 3:
Esistono limiti di nome file o lunghezza del percorso su Linux?
Sì, la lunghezza del nome file e del percorso è limitata da :
- Limiti del file system dichiarati da WerkkreW;
- costanti definite in
linux/limits.h
come affermato da sfp.
Per ottenere dinamicamente queste proprietà:
- Usa le funzioni
pathconf
efpathconf
come proposto da Michael Aaron Safyan - Crea un nome file (o percorso) sempre più lungo come spiegato da dogbane
-
Usa il comando
getconf
come proposto da tim disponibile anche su Linux:$ getconf NAME_MAX /mnt/sda2/ 255 $ getconf PATH_MAX /mnt/sda3/ 4096
Soluzione 4:
E per risparmiare tempo (e ancorarlo alla memoria):
ext2, ext3, ext4, zfs:nessun limite di percorso; Limite nome file 255 byte.
Soluzione 5:
Queste sono le lunghezze dei nomi dei file system. Anche lo stesso "linux" ne ha alcuni. Ad esempio, da bits/stdio_lim.h:
# define FILENAME_MAX 4096