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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephan Peccini
Le #18309131
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 : Les Pyrénées : Le blog :
Francois Lafont
Le #18309501
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
François
Le #18310621
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)
Francois Lafont
Le #18310931
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
YBM
Le #18311151
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.
Nicolas George
Le #18311141
Francois Lafont wrote in message
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 */
Francois Lafont
Le #18311321
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
Francois Lafont
Le #18311311
Nicolas George a écrit :

Extrait de Single Unix :

[...]



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


--
François Lafont
Fabien LE LEZ
Le #18311531
On 05 Jan 2009 22:27:48 GMT, Nicolas George

#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 ?
Cornelia Schneider
Le #18311801
=?ISO-8859-15?Q?François?= 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
Publicité
Poster une réponse
Anonyme