Saltar al contenido

¿Límites de longitud de nombre de archivo en Linux?

Si encuentras alguna incompatibilidad con tu código o trabajo, recuerda probar siempre en un entorno de testing antes añadir el código al trabajo final.

Solución:

Solución 1:

Consulte la página de Wikipedia sobre la comparación de sistemas de archivos, especialmente en la columna Longitud máxima del nombre de archivo.

Aquí están algunas límites de longitud de nombre de archivo en sistemas de archivos populares:

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

Solución 2:

He leído aquí que el límite de longitud de la ruta está en los encabezados del sistema. El límite de longitud del nombre de archivo también está ahí. En mi sistema es el archivo:

  /usr/src/linux-headers-2.6.38-10/include/linux/limits.h

y C-lang define:

  #define NAME_MAX         255    /* # chars in a file name */
  #define PATH_MAX        4096    /* # chars in a path name including nul */

y algo más.


Solución 3:

Me refiero a otras respuestas, por favor vótelas.

¿Hay algún límite de longitud de ruta o nombre de archivo en Linux?

Sí, las longitudes de nombre de archivo y nombre de ruta están limitadas por:

  • límites del sistema de archivos según lo establecido por WerkkreW;
  • constantes definidas en linux/limits.h como lo indica sfp.

Para obtener dinámicamente estas propiedades:

  • Usar funciones pathconf y fpathconf según lo propuesto por Michael Aaron Safyan
  • Cree un nombre de archivo (o nombre de ruta) más y más largo como lo explica dogbane
  • Usa el comando getconf según lo propuesto por tim que también está disponible en Linux:

    $ getconf NAME_MAX /mnt/sda2/
    255
    $ getconf PATH_MAX /mnt/sda3/
    4096
    

Solución 4:

Y en aras de ahorrar tiempo (y anclarlo a la memoria):

ext2, ext3, ext4, zfs: sin límites de nombre de ruta; Límite de nombre de archivo de 255 bytes.


Solución 5:

Esas son las longitudes de los nombres del sistema de archivos. “Linux” en sí también tiene algunos. Por ejemplo, desde bits/stdio_lim.h:

# define FILENAME_MAX 4096

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *