Como dijo @ sergiy-kolodyazhnyy, la longitud máxima del nombre de archivo dependerá del sistema de archivos y la gran mayoría limita la longitud del nombre de archivo a 255 bytes.
Una omisión notable de su carta son los medios ópticos. Si bien las extensiones UDF y Rock Ridge tienen el mismo límite de 255 caracteres para los nombres de archivo, ISO9660 sin Rock Ridge y Joliet tienen límites mucho más estrictos con los que realmente puedes enfrentarte si haces algo como hacer una copia de seguridad de las youtube-dl
descargas.
Los nombres de archivo de Joliet están limitados a 64 puntos de código UTF-16 o 103 de ellos si su programa de masterización de disco tiene una opción para romper la especificación de maneras que parecen no causar daño en la práctica.
Del mismo modo, los niveles ISO 9660 2 y 3, sin las extensiones de Rock Ridge, están limitados a nombres de archivo de 31 caracteres o 37 si estás jugando rápido y suelto con la especificación.
ISO 9660: 1999, que es compatible con genisoimage pero no con interfaces como K3b, tiene un límite de 207 bytes (sin Rock Ridge) o 197 bytes (con Rock Ridge).
(Fuente: la página de genisoimage
manual)
En cuanto a la longitud máxima de la ruta , es un gran error. No hay uno para la mayoría de los sistemas de archivos de Linux.
Hay una constante con nombre PATH_MAX
, pero es sólo el máximo para determinadas API POSIX , que se puede trabajar alrededor .
Las únicas excepciones consecuentes a esta convención "sin límite en la longitud de ruta" son FAT32 y exFAT (32,760 caracteres Unicode), NTFS y ReFS (32,767 caracteres Unicode), UDF (1,023 bytes) e ISO 9660 (poco claro, pero he visto se indica como 180, 207, 212 o 222 bytes).
Esto se puede demostrar fácilmente ejecutando este pequeño programa Python y luego explorando los directorios resultantes.
import os
for X in range(20):
os.mkdir('x' * 255)
os.chdir('x' * 255)
Mi bash
, que muestra la ruta completa en el indicador, tendrá problemas con él. Sin embargo zsh
, my , que muestra solo la carpeta actual en el indicador, no tendrá problemas e incluso tiene una función pwd
integrada que puede mostrar la ruta completa de más de 5000 bytes sin problemas.