Nombre de sous répertoire autorisés
Fermé
cath
-
8 févr. 2006 à 15:26
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 31 août 2007 à 14:19
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 31 août 2007 à 14:19
A voir également:
- Nombre de sous répertoire autorisés
- Les bloqueurs de publicité ne sont pas autorisés sur youtube - Accueil - Streaming
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Nombre facile - Télécharger - Outils professionnels
- Vous avez besoin d'une autorisation de la part de - Guide
- Nombre de combinaison possible avec 3 chiffres de 1 à 3 ✓ - Forum Programmation
8 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
29 août 2007 à 17:20
29 août 2007 à 17:20
Salut,
Quelqu'un aurait connaissance de l'existation de cette limite est en connaitrais la cause ?
La limite est defini dans les fichiers headers de kernel (voir en gras) à 32000
Tu peux compiler toi même un nouveau noyau et changer les valeurs (je n'est jamais testé)
Quelqu'un aurait connaissance de l'existation de cette limite est en connaitrais la cause ?
La limite est defini dans les fichiers headers de kernel (voir en gras) à 32000
root@debian:/usr/src/linux# rgrep 'E.*LINK.*32000' . ./include/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000 ./include/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000 ./include/linux/ext4_fs.h:#define EXT4_LINK_MAX 32000
Tu peux compiler toi même un nouveau noyau et changer les valeurs (je n'est jamais testé)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
31 août 2007 à 14:19
31 août 2007 à 14:19
Salut,
je viens de tester et ça marche, donc j'ai mis au lieu de 32000 la valeur 64000
je viens de tester et ça marche, donc j'ai mis au lieu de 32000 la valeur 64000
root@debian:~# time for i in $(seq 63000);do mkdir a_$i;done real 5m55.440s user 1m37.018s sys 3m52.995s root@debian:~# find . a_* 2>/dev/null | xargs ls -1 | wc -l 63005 root@debian:~#
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
8 févr. 2006 à 17:36
8 févr. 2006 à 17:36
Ce n'est limite que par la taille du disque et de la facon de formatage (combien de "inodes" par Mo) mais normalement c'est un tres grand nombre qu'on arrive pas depasser.
Peut-etre il y a une limite pour la profondeur de l'arbre de sous-repertoires (c'est ca ta question ?) mais je ne suis meme pas sur pour ca. Peut-etre dans les anciennes versions de Linux c'etait limitee. En fait ici le nombre de caracteres dans un chemin absolu, de genre: "/dossier1/dossier2/..../dossiers99/fichier" poserait plus de problemes (si ca depasse 128 ou 256 caracteres) a cause de la shell que le nombre de dossiers eux memes.
Peut-etre il y a une limite pour la profondeur de l'arbre de sous-repertoires (c'est ca ta question ?) mais je ne suis meme pas sur pour ca. Peut-etre dans les anciennes versions de Linux c'etait limitee. En fait ici le nombre de caracteres dans un chemin absolu, de genre: "/dossier1/dossier2/..../dossiers99/fichier" poserait plus de problemes (si ca depasse 128 ou 256 caracteres) a cause de la shell que le nombre de dossiers eux memes.
Xenor
Messages postés
3312
Date d'inscription
dimanche 11 août 2002
Statut
Contributeur
Dernière intervention
22 juin 2015
51
8 févr. 2006 à 17:59
8 févr. 2006 à 17:59
Bonjour à tous,
Ben en fait, ça dépend comment le système de fichiers est conçu plutôt que de la taille du disque (de la partition plus précisémment). Sur les FS utilisés sous linux (ext2 ext3 reiserFS etc...) je crois qu'il n'y a pas de limite dans le nombre d'inodes par répertoire (inode = objet quel qu'il soit, fichier, lien, répertoire, périphérique, etc), la limite se situe comme dit kmf dans la taille du chemin absolu. J'ai entendu dire qu'elle était de 4ko (soit 4096 caractères) donc pour arriver au bout, faut y aller !
Ben en fait, ça dépend comment le système de fichiers est conçu plutôt que de la taille du disque (de la partition plus précisémment). Sur les FS utilisés sous linux (ext2 ext3 reiserFS etc...) je crois qu'il n'y a pas de limite dans le nombre d'inodes par répertoire (inode = objet quel qu'il soit, fichier, lien, répertoire, périphérique, etc), la limite se situe comme dit kmf dans la taille du chemin absolu. J'ai entendu dire qu'elle était de 4ko (soit 4096 caractères) donc pour arriver au bout, faut y aller !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci à vous 2 pour cette réponse détaillée. Alors, si on suppose qu'il y a une limite en nombre d'inodes dans un sous répertoire, savez vous une commande permettant de l'obtenir ?
Cathy
Cathy
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
10 févr. 2006 à 10:17
10 févr. 2006 à 10:17
Le nombre d'inodes est seulement limite pour toute une partitiation, un sous repertoire n'a pas d'autre limite qui serait inferieure. Le nombre d'inodes en total est typiquement tres grand, la seule facon de le depasser serait d'avoir pleins de tres petits fichiers (inferieur a 4 Ko ou similaire).
Toutefois pour connaitre le nombre d'inodes et pleins d'autres infos d'une partitions tu peux faire la commande:
ou /dev/hda1 est le nom de la partition qu'on regarde, ca peut aussi etre /dev/hda2, /dev/hda3 etc. (regarder avec "df" ou "cat /etc/fstabl" pour savoir quelles partitions avec quels points de montages tu as).
La commande "tune2fs ..." doit etre faite en root (administrateur), alors d'abord se connecteur en root avec "su -" et suivi du mot de pass de root.
Attention: Si on utilise "tune2fs" avec d'autres options que "-l" ca fait de choses modifiant les proprietes de la partition et potentiellement tres tres dangereuses (regarde les explication de la doc avec "man tune2fs").
Toutefois pour connaitre le nombre d'inodes et pleins d'autres infos d'une partitions tu peux faire la commande:
/sbin/tune2fs -l /dev/hda1
ou /dev/hda1 est le nom de la partition qu'on regarde, ca peut aussi etre /dev/hda2, /dev/hda3 etc. (regarder avec "df" ou "cat /etc/fstabl" pour savoir quelles partitions avec quels points de montages tu as).
La commande "tune2fs ..." doit etre faite en root (administrateur), alors d'abord se connecteur en root avec "su -" et suivi du mot de pass de root.
Attention: Si on utilise "tune2fs" avec d'autres options que "-l" ca fait de choses modifiant les proprietes de la partition et potentiellement tres tres dangereuses (regarde les explication de la doc avec "man tune2fs").
Pour relancer le débat je suis confronter au problème suivant, dans un répertoire formaté en EXT3, il m'est impossible de créer plus de 32000 répertoires dans le même répertoire, le message d'erreur est le suivant :
mkdir: cannot create directory `31999': Too many links
Il n'y a pas de problème au niveau des inodes :
Filesystem Inodes IUsed IFree IUse%
/dev/sda1 656000 77163 578837 12%
none 258087 1 258086 1%
/dev/sda6 8339456 1035905 7303551 13%
Quelqu'un aurait connaissance de l'existation de cette limite est en connaitrais la cause ?
Merci d'avance pour vos réponses
mkdir: cannot create directory `31999': Too many links
Il n'y a pas de problème au niveau des inodes :
Filesystem Inodes IUsed IFree IUse%
/dev/sda1 656000 77163 578837 12%
none 258087 1 258086 1%
/dev/sda6 8339456 1035905 7303551 13%
Quelqu'un aurait connaissance de l'existation de cette limite est en connaitrais la cause ?
Merci d'avance pour vos réponses
dubcek
Messages postés
18752
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
3 octobre 2024
5 619
29 août 2007 à 16:25
29 août 2007 à 16:25
Hello
parce que chaque repertoire est lié au repertoire dans lequel il se trouve (c'est ..) et visiblement 32000 est la limite du nombre de liens.
faire ls -ld du repertoire por voir le nombre de liens
32000 est visiblement un entier. il faut voir le détail de la structure de l'inode : man inode(4) ou stat(2)
parce que chaque repertoire est lié au repertoire dans lequel il se trouve (c'est ..) et visiblement 32000 est la limite du nombre de liens.
faire ls -ld du repertoire por voir le nombre de liens
32000 est visiblement un entier. il faut voir le détail de la structure de l'inode : man inode(4) ou stat(2)