Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nom de fichier limité à 255 caractères. Mais le nom part-il de la racine ?

20 réponses
Avatar
Francois Lafont
Bonjour à tous,

Je me posais la question suivante. Dans les divers documentation sur
Linux, on lit souvent que le nom des fichiers est limité à 255
caractères. Mais le nom d'un fichier c'est quoi exactement ?

1) c'est "/home/durant/MesScripts/toto.sh"

2) ou c'est juste "toto.sh"



Merci d'avance.


--
François

10 réponses

1 2
Avatar
Stephan Peccini
Le Mon, 05 Jan 2009 19:42:14 +0100, Francois Lafont a écrit :

Je me posais la question suivante. Dans les divers documentation sur
Linux, on lit souvent que le nom des fichiers est limité à 255
caractères. Mais le nom d'un fichier c'est quoi exactement ?



Il suffit d'essayer :-)

[ ~]$ ls -l
total 2736
-rw-rw-r-- 1 stephan stephan 0 janv. 5 19:47
012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234

--
Stéphan Peccini
Les photos : <URL:http://photonature.fr>
Les Pyrénées : <URL:http://photonature.fr/pyrenees>
Le blog : <URL:http://pyrenees.peccini.fr>
Avatar
Francois Lafont
Stephan Peccini a écrit :
Il suffit d'essayer :-)



Mais bien sûr, que je suis bête. Je crois que je n'osais pas en fait. :-)

Effectivement, d'après mes tests, c'est la réponse 2) qui est juste.

Franchement, tu parles d'une info dans ce cas. Faire un fichier dont le
nom (au sens de 2) fait plus de 255 caractères, faut vraiment être
tordu, non ?

Si la réponse avait été 1), je ne dis pas, la remarque pouvait
éventuellement se justifier, mais dans le cas de 2, c'est franchement
histoire de frimer... ;-)


Merci bien.

--
François Lafont
Avatar
François
Francois Lafont a émis l'idée suivante :

Bonjour à tous,



Je me posais la question suivante. Dans les divers documentation sur
Linux, on lit souvent que le nom des fichiers est limité à 255
caractères. Mais le nom d'un fichier c'est quoi exactement ?



1) c'est "/home/durant/MesScripts/toto.sh"



2) ou c'est juste "toto.sh"



Merci d'avance.



Réponse 1.
Il en est de même sous Windows, et c'était pareil sous DOS.

--
François
Les gens les moins compétents sont systématiquement affectés aux postes
où ils risquent de causer le moins de dégâts : l'encadrement. (Sott
Adams)
Avatar
Francois Lafont
François a écrit :

Je me posais la question suivante. Dans les divers documentation sur
Linux, on lit souvent que le nom des fichiers est limité à 255
caractères. Mais le nom d'un fichier c'est quoi exactement ?



1) c'est "/home/durant/MesScripts/toto.sh"



2) ou c'est juste "toto.sh"



Merci d'avance.



Réponse 1.
Il en est de même sous Windows, et c'était pareil sous DOS.



Ah, ben non. Je viens de faire le test chez moi. Ou alors j'ai rien
compris ?

Entendons nous bien : d'après mes essais, quand on dit « sous Linux, le
nom d'un fichier ne peut pas dépasser 255 caractères », le mot « nom »
est à prendre au sens de 2), c'est-à-dire toto.sh et non pas
/home/.../toto.sh.

C'est ce que j'ai conclu après avoir créé un fichier dans mon /home dont
le nom était "azer......azer123" qui faisait 255 caractères pile poil.
J'ai pu taper sans problème une commande du genre :

gedit /home/francois/azer...azer123

Pourtant le nom complet faisait bien plus que 255 caractères lui (à
cause de la partie "/home/francois/").

Donc ça contredit ce que vous dîtes, non ? (vous me mettez le doute).


--
François Lafont
Avatar
YBM
Francois Lafont a écrit :
François a écrit :

Je me posais la question suivante. Dans les divers documentation sur
Linux, on lit souvent que le nom des fichiers est limité à 255
caractères. Mais le nom d'un fichier c'est quoi exactement ?



1) c'est "/home/durant/MesScripts/toto.sh"



2) ou c'est juste "toto.sh"



Merci d'avance.



Réponse 1.
Il en est de même sous Windows, et c'était pareil sous DOS.



Ah, ben non. Je viens de faire le test chez moi. Ou alors j'ai rien
compris ?



non non, tu as parfaitement compris, c'est bien 2) :

$ mkdir -p /tmp/$(perl -e '{ print "a" x 255 }')/$(perl -e '{ print "a"
x 255 }')
$ ls
/tmp/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

ici on a 255 + 255 + 3 + 3 pour le chemin, sans problème.
Avatar
Nicolas George
Francois Lafont wrote in message
<49625486$0$10260$:
Je me posais la question suivante. Dans les divers documentation sur
Linux, on lit souvent que le nom des fichiers est limité à 255
caractères. Mais le nom d'un fichier c'est quoi exactement ?

1) c'est "/home/durant/MesScripts/toto.sh"

2) ou c'est juste "toto.sh"



Extrait de Single Unix :

Pathname

A character string that is used to identify a file. In the context of
IEEE Std 1003.1-2001, a pathname consists of, at most, {PATH_MAX} bytes,
including the terminating null byte. It has an optional beginning slash,
followed by zero or more filenames separated by slashes. A pathname may
optionally contain one or more trailing slashes. Multiple successive slashes
are considered to be the same as one slash.

Filename

A name consisting of 1 to {NAME_MAX} bytes used to name a file. The characters
composing the name may be selected from the set of all character values
excluding the slash character and the null byte. The filenames dot and dot-dot
have special meaning. A filename is sometimes referred to as a "pathname
component".

Extrait de /usr/src/linux/include/linux/limits.h :

#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
Avatar
Francois Lafont
YBM a écrit :
Ah, ben non. Je viens de faire le test chez moi. Ou alors j'ai rien
compris ?



non non, tu as parfaitement compris, c'est bien 2) : [...]



Ok, merci de m'enlever le doute.


--
François
Avatar
Francois Lafont
Nicolas George a écrit :

Extrait de Single Unix :

[...]



Merci bien pour cette référence. C'est imparable. :-)


--
François Lafont
Avatar
Fabien LE LEZ
On 05 Jan 2009 22:27:48 GMT, Nicolas George
<nicolas$:

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



Arf... NAME_MAX est compté sans le et PATH_MAX avec. Il y a une
raison historique à cette bizarrerie ?
Avatar
Cornelia Schneider
=?ISO-8859-15?Q?François?= wrote
in news::

Réponse 1.



Non.

Il en est de même sous Windows,



Non plus. Ne pas confondre chemin d'accès et nom du fichier.

et c'était pareil sous DOS.



Non plus : sous DOS c'étaient 8+3 caractères pour le nom du fichier et 63
caractères pour le chemin d'accès (si je me souviens bien, ça date un peu).

Cornelia

--
Be out and be proud - today is the first day of the rest of your life
Support Transgenre Strasbourg : www.sts67.org
Creative stuff : www.bownbend.com
GPG key ID 83FF7452
1 2