Wie kann ich die maximale Dateinamenslänge auf einer Linux-Box ermitteln?Programmgesteuert maximale Dateinamenlänge bestimmen
Bevorzugt in PHP-Programmiersprache.
Wie kann ich die maximale Dateinamenslänge auf einer Linux-Box ermitteln?Programmgesteuert maximale Dateinamenlänge bestimmen
Bevorzugt in PHP-Programmiersprache.
Sie wollen pathconf
or fpathconf
, die nicht ausgesetzt ist (noch) nicht in PHP. (Wenn sie sind, werden sie wahrscheinlich posix_pathconf
sein.)
Sie können Shell getconf
, eine Befehlszeilen-Dienstprogramm-Schnittstelle zu derselben Funktionalität auch Shell. Versuchen Sie dies auf Ihrem System:
$ getconf NAME_MAX /tmp
$ getconf PATH_MAX /tmp
Die maximale Dateilänge für am meisten Linux-Dateisysteme ist 255. Sie verwenden wahrscheinlich am besten als allgemeine Konstante und ändern, um Ihr bekanntes Dateisystem in Linux anzupassen. Hier ist eine nette comparison of the file systems, die verwendet werden könnte. Die maximale Dateilänge ist dort aufgeführt.
gibt es keine Notwendigkeit, es programmatisch zu bestimmen. es ist 255 Bytes.
edit: Sie können längere Dateinamen auf sehr wenigen Dateisystemen haben (Reiser, glaube ich), aber wenn Sie bei 255 bleiben, wird Ihre App auf jeder Linux-Installation verwendbar sein.
Ich denke, Sie könnten realpath() verwenden. Ich bin nicht sicher, bester Ansatz, aber zum Beispiel:
$ maxlen = 264-strlen (realpath ('index.php')));
264 255 (max Pfad lim) + 9 ('index.php' len). Wenn Sie also die aktuelle Pfadlänge vom Limit subtrahieren, erhalten Sie die maximale aktuelle Pfadlänge.
Sie die Konstante PHP_MAXPATHLEN
können Sie sind verwirrend Pfad max len (in der Regel 4096) mit Dateinamen max len (in der Regel 255). – mark4o