Beschränken Sie die Länge des Dateinamens in bash
Den folgenden Fragen gemeint sind, für die bash und linux nur:
- Gibt es ein limit für die Anzahl der Zeichen im absoluten Pfadnamen einer Datei?
- Gibt es ein limit für die Anzahl der Zeichen für den Dateinamen (ohne Erweiterung) nur???
Wenn ja, was könnten diese Grenzwerte werden? Wie kann ich Zugang zu Ihnen im Falle Sie sind system-spezifisch ist?
InformationsquelleAutor der Frage Sriram | 2011-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt sehr viel auf dem Dateisystem. Für das ext FS (derzeit der am meisten auf Linux):
Die Erweiterung ist nicht etwas, das die FS ist sich bewusst, 255 bytes, Erweiterung enthalten (Sie können Datei-Namen ohne Erweiterungen).
Hier ist eine ausführliche Liste dieser Grenzen, pro FS.
Gibt es auch Erweiterungen, um die Datei-system, die können Ihre maximale Länge als auch. Zum Beispiel eCryptFS verwendet Teil der unteren Datei-Namen zu halten, die Metadaten und die Grenzen der file-name zu einer maximalen Länge von 143 Zeichen. Sehen Ubuntu launchpad eCryptFS Eintrag.
InformationsquelleAutor der Antwort e-satis
In ein temp-Verzeichnis ausgeführt werden:
und ich bekomme:
was bedeutet, dass mein limit bei 255.
InformationsquelleAutor der Antwort dogbane
Auf Mac OS X 10.6.7:
InformationsquelleAutor der Antwort tim
ich beziehe mich auf andere Antworten, bitte upvote.
Unter Linux Dateinamen-und Pfad-Längen ist abhängig von :
linux/limits.h
vor der Kompilierung wie bereits von Michael Aaron Safyan und später David Balažic hat darauf hingewiesen eine ähnliche Frage.Dynamisch Holen Sie sich diese Eigenschaften in bash:
Verwenden Sie den Befehl
getconf
Vorschlag timdass Sie auch auf Linux:InformationsquelleAutor der Antwort olibre
Die Single UNIX Specification erwähnt
NAME_MAX
undPATH_MAX
Konstanten in Grenzen.h gelesen werden können, können mit pathconf. Dies ist jedoch sehr Dateisystem abhängig, und Sie sind kaum zu schlagen, eine solche Grenze.HINWEIS: Als Programmierer, Sie sollten nicht hart-code diese Grenzen. Sie sollten verwenden Sie die dynamische Zuweisung, so dass es immer funktionieren, so lange, wie der zugrunde liegende system erlaubt für was auch immer Sie tun.
InformationsquelleAutor der Antwort Michael Aaron Safyan
Ja, gibt es.
Sehen Antwort von sfp auf die Frage Mit dem Namen der Länge begrenzt auf linux? auf serverFehler
Kurz:
Und für:
in der gleichen verlinkten Antwort:
InformationsquelleAutor der Antwort David Balažic
Kommt es auf das Dateisystem verwendet. Zum Beispiel, ext4 hat eine maximale Dateinamen Länge von 256 bytes und unbegrenzte Pfadname Länge.
Sehen Vergleich von Dateisystemen für mehr.
InformationsquelleAutor der Antwort Eugene Yarmash
Dies ist kein bash-abhängig; es ist OS abhängig. Auf einem mac, dessen 0xff für einen Dateinamen und 0 x 400 oder so für eine Pfad-Namen. Ubuntu 9 hatte eine Grenze von 144 Zeichen für Dateinamen.
Habe ich diesen link gefunden, in Wikipedia. Es erzählt Pfad und Dateiname Grenzen für zahlreiche Dateisysteme.
InformationsquelleAutor der Antwort ncmathsadist
FYI, auf die Hafenarbeiter, die mit dem Namen limit ist derzeit 242 Zeichen.
InformationsquelleAutor der Antwort jp.rider63