Rm *.html ne marche pas si beaucoup de fichie

Fermé
sohnic - 22 avril 2004 à 16:04
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 - 25 avril 2004 à 13:53
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

J'ai oublie de preciser l'erreur retournée :
Argument list too long.
Merci pour votre aide
S.
0
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
23 avril 2004 à 16:03
ç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 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 avril 2004
23 avril 2004 à 16:18
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 Date d'inscription mercredi 21 avril 2004 Statut Contributeur Dernière intervention 19 avril 2006 51
23 avril 2004 à 16:10
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 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 avril 2004
23 avril 2004 à 16:20
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 Date d'inscription mercredi 21 avril 2004 Statut Contributeur Dernière intervention 19 avril 2006 51
23 avril 2004 à 16:54
Peut-être mais lequel ???
0

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

Posez votre question
JeC Messages postés 6 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 avril 2004
23 avril 2004 à 16:57
bonne question je vais chercher.
0
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 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
23 avril 2004 à 23:12
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 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
23 avril 2004 à 23:20
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 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 14 février 2007 13
24 avril 2004 à 13:36
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 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
25 avril 2004 à 13:53
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