Rm *.html ne marche pas si beaucoup de fichie

sohnic -  
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   -
Bonjour,
Je travaille avec la red hat 8 et j'ai un problème bizarre.
ls *.html, rm *.html (ou n'importe quoi) fonctionne, si le nombre de fichiers à retourner est petit (quelle est la limite, je n'en sais rien), par contre ne fonctionne pas si le nombre de fichiers retourné est énorme (chez moi, plus de 14000) alors que le ls simple fonctionne (ainsi que ls -l, ls -la). Je suis donc obligée de faire un ls|grep .html pour pouvoir faire mon ls filtré.
Une idée ?
Merci,
Sohnic
A voir également:

10 réponses

sohnic
 
J'ai oublie de preciser l'erreur retournée :
Argument list too long.
Merci pour votre aide
S.
0
JeC
 
je réponds peut être un peu tard, mais tu es proche de la soluce.

si tu fais :
ls | grep .html | xargs rm

tu pourras effacer tes fichiers quelqu'en soit le nombre.
pour explication
ls affiche les fichiers
grep .html trie les fichiers html
xargs rm supprime les fichiers triés un à un

vala

JeC
0
Utilisateur anonyme
 
ça n'explique pas pourquoi il a un problème avec le nombre de fichiers, et je dois dire quel'énigme m'intéresse... je serais curieux de savoir...

kinder.surprise,
caractère banane
0
JeC Messages postés 6 Statut Membre
 
personellement je ne connais pas les restrictions précises

en temps normal si tu tapes tous les noms de fichiers à la main, la ligne de commande sature très vite.

il y a une limitation aussi avec les caractères génériques, c'est sûrement règlable, mais je ne sais pas où, je chercherai.

a+
JeC
0
Gordius Messages postés 267 Statut Contributeur 51
 
A mon avis, il doit y avoir une limite de taille dans les arguments de la commande rm. Et cela devrait pouvoir ce régler en recompilant un rm à partir des sources et en cherchant la variable limitant cela et en la modifiant manuellement.
0
JeC Messages postés 6 Statut Membre
 
la limitation n'est pas dû à rm mais à l'environnement, il doit y avoir une limitation dans la taille du fichier stockant les variables.
0
Gordius Messages postés 267 Statut Contributeur 51
 
Peut-être mais lequel ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JeC Messages postés 6 Statut Membre
 
bonne question je vais chercher.
0
sohnic
 
Bonjour,
Je ne pensais pas poser une telle enigme avec mon petit probleme !
Ca fait plaisir de voir l'interet que vous y portez.
Je m'en suis sortie en fait le jour meme avec un petit script perl, mais moi aussi ca me titillait !
En tout cas je saurais comment les effacer maintenant en une ligne de commande malgre tout (merci Jec).
J'essaierai aussi d'explorer vos pistes ... par pure curiosite.
Encore merci,
Sohnic
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
alut all!

Bon ca vient bien des source de rm, de façgon indirect a cause des includes. C'est donc soit les source de coreutils, soit les includes du systeme.
Parcontre, pas moyen de remettre la main dessus, mes sources sont peut-etre plus récentes et donc moins restrictives.

En général, ces message sont gérés par les entêtes errno.h
Pour la, pas moyen de savoir si c'est pris dans les source de coreutils, ou les includes du systeme... j'ai pas eu le courage de voir plus loin, mais je penche pour la seconde hypothèse.
Et c'est a prioris ue erreur générée car la chaine (argv) qui contient la liste des arguments atteind une capacitée maximale, ou considérée comme dangeureuse.

A moins que ce soit dans les source du noyal que ce soit codé, mais le message étant, si je ne me trompe pas, "/bin/rm Argument...", soit c'est pas claire, soit c'est pas dans le kernel :o)

Voili voilou! Bonne continuation, @++
"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
Héhé :)
Bon ça a l'air de se confirmer, mais pour etre sur, ca va etre coton coton!
le fichier qui est a l'origin du message et celui là:
/usr/include/asm-generic/errno-base.h
Pour le reste, il faudra analyser tout ça!
"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"
0
guigolum Messages postés 39 Statut Membre 13
 
excusez moi je suis new(bee!!) et j'ai pas encore linux, j'ai pas beaucoup de temps pour utiliser mon ordi (je suis en prepa) mais la les includes, c'est du c++, non?? en fait j'aimerais apprendre le c++ avec des exemples ET installer linux(j'ai déjà telecharger mandrake) donc ce serait une bonne occasion...
donc LA QUESTION est: existe-t-il des sources de linux en c++??
et est-ce que ce serait possible pour moi d'y comprendre quelquechose?? merci pour vo(tre)s réponses et je suis super content de voir des gens qui s'interrèssent a l'informatique pas comme un moyen d'aller juste sur le net...

j'veux apprendre!!!
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
Bon c'est visiblement dans l'arboressence de coreutils, le fichier /lib/getopt.c qui générre le message en utilisant la variable Externe "errno" qui n'est jamais modifier par le programme lui même... et là, je ne sais plus ou chercher...
Je pense que la taille max qui déclenche l'alerte doit-etre codée dans le noyau, je ne vois pas sinon ou la trouver :(

"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"
0