GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Längenbeschränkungen für Dateinamen unter Linux?

Lösung 1:

Siehe die Wikipedia-Seite zum Vergleich von Dateisystemen, insbesondere in der Spalte Maximale Dateinamenlänge .

Hier sind einige Längenbeschränkungen für Dateinamen in gängigen Dateisystemen:

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

Lösung 2:

Ich habe hier gelesen, dass die Pfadlängenbegrenzung in den Systemheadern steht. Die Längenbeschränkung für Dateinamen ist ebenfalls vorhanden. Auf meinem System ist es die Datei:

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

und C-lang definiert:

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

und einige mehr.

Lösung 3:

Gibt es Beschränkungen für Dateinamen oder Pfadlängen unter Linux?

Ja, die Länge von Dateinamen und Pfadnamen wird durch :

begrenzt
  • Dateisystemgrenzen wie von WerkkreW angegeben;
  • Konstanten definiert in linux/limits.h wie von sfp angegeben.

So erhalten Sie diese Eigenschaften dynamisch:

  • Verwenden Sie die Funktionen pathconf und fpathconf wie von Michael Aaron Safyan vorgeschlagen
  • Erstellen Sie einen immer längeren Dateinamen (oder Pfadnamen), wie von dogbane erklärt
  • Verwenden Sie den Befehl getconf wie von tim vorgeschlagen, das auch unter Linux verfügbar ist:

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

Lösung 4:

Und um Zeit zu sparen (und sie im Gedächtnis zu verankern):

ext2, ext3, ext4, zfs:keine Beschränkungen für Pfadnamen; 255 Bytes Dateinamenlimit.

Lösung 5:

Das sind Dateisystemnamenslängen. "linux" selbst hat auch welche. Zum Beispiel aus bits/stdio_lim.h:

# define FILENAME_MAX 4096

Linux
  1. Linux-Ping-Befehl mit Beispielen erklärt

  2. Wie funktionieren Linux-Dateideskriptorbeschränkungen?

  3. Linux-limits.conf funktioniert nicht?

  4. Linux:Routing basierend auf Domänennamen

  5. Messen der 'gesamt geschriebenen Bytes' unter Linux

Tcpdump-Beispiele - Erfassen Sie den Netzwerkverkehr in Linux

So ändern Sie das Limit für offene Dateien in Linux

So entfernen Sie Leerzeichen aus Dateinamen in Linux

6 verschiedene Möglichkeiten zum Auflisten von Festplatten in Linux

So verwenden Sie den ulimit-Befehl unter Linux

route-Befehlsbeispiele in Linux