Maximale Dateinamenlänge erweitern (Linux)?
Hallo!
Gibt es eine Möglichkeit die Maximale Dateinamenlänge in Linux, ähnlich wie es auch in Windows möglich ist, zu erhöhen? Hab da nen tolles Programm, dass den runtergeladenen Dateien direkt die Tags in den Namen schreibt, sodass man sie durch eine Suche sehr einfach wiederfinden kann. Nun habe ich aber das Problem, dass die Tags manchmal nicht passen und der Dateiname zu lang wird.
Kann ich das also irgendwie manuell ändern?
3 Antworten
Hallo
Gibt es eine Möglichkeit die Maximale Dateinamenlänge in Linux, ähnlich wie es auch in Windows möglich ist, zu erhöhen?
Auf was willst Du denn die Dateinamenlänge noch erhöhen, sind 255 Zeichen nicht mehr genug, so wie hier?
touch 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.txt
Damit habe ich eine Datei mit 250 Zeichen(inkl. Punkt und Erweiterung erzeugt:
rw-r--r-- 1 linuxhase linuxhase 0 7. Dez 19:50 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.txt
Je länger die Dateinamenendung ist umso kürzer muss der Dateiname sein, also insgesamt "nur" 250 Zeichen; abhängig vom Dateisystem.
Kann ich das also irgendwie manuell ändern?
Die Längenbegrenzung wird im Kernel definiert. Du müsstest also den Kernel neu kompilieren. Aber dann müssen auch alle Programme, die mit Dateien arbeiten, neu compiliert werden. Wenn sich aber einige Programme nicht an die eingestellten Limits halten wird es Probleme mit Buffer-Overflows geben. Und das einspielen neuer Updates kannst du dann auch nicht mehr durchführen und musst immer alles selbst compilieren. LINK
Wie es aktuell bei Dir eingestellt ist siehst Du hiermit:
egrep 'NAME|PATH' /usr/include/linux/limits.h
Linuxhase
Kurze Antwort: Geht nicht*
Pfade koennen laenger sein, d.h. du kannst versuchen deine Dateinamen auf mehrere Pfadnamen zu splitten.
*) Geht technisch schon, aber man moechte weder Filesyteme noch Kernel umschreiben fuer "nur" lange Dateinamen.
Du kannst Dir das natürlich im Kernel umhacken, wenn Du viel Muße hast.
Aber das ist doch auch ziemlich unsinning, warum will man Metadaten aus der Datei replizieren? Und wenn, warum in den Dateiname und nicht in die XAs?
Nur am Rande, die Dateinamenlänge ist bei Windows genauso auf 255 Zeichen beschränkt.
Kleine Anmerkung: Das Limit ist 255 Byte, nicht Zeichen. Wenn man z.B. UTF-8 Foo in seine Dateinamen kloppt, ist das Limit auch gern mal viel frueher erreicht; z.B. nach 100 "Zeichen"