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

rm ne fonctionne pas si il y a trop de fichier ???

17 réponses
Avatar
Eric Belhomme
j'ai un soucis avec la commande rm :

# rm -f ./*
bash: /bin/rm: Argument list too long

le repertoire en question contient plus de 12000 fichiers... et la commande
s'execute parfaitement lorsqu'il n'y a que quelques dizaines de fichiers...

Quelqu'un a une explication, et un moyen de contourner le pb ?

--
Rico (RicoSpirit) - http://www.ricospirit.net
Pour en savoir autant que moi sur INN (c.a.d. pas grand chose !) :
http://www.ricospirit.net/inn/

10 réponses

1 2
Avatar
Pierre LALET
j'ai un soucis avec la commande rm :

# rm -f ./*
bash: /bin/rm: Argument list too long


c'est juste la ligne d'arguments qui effraie rm, pas le nombre de
fichiers. Alors "for i in ./*; do rm -f $i; done", ou alors "cd ..; rm
-rf <repertoire>" (s'il n'y a pas de fichiers en .* autres que . et ..
dans <repertoire>, et que tu souhaites effacer <repertoire>) feront ce
que tu veux faire.

pierre


--
Pierre LALET
Elève ingénieur -- ENSEIRB
-- http://www.enseirb.fr/~lalet
clé publique PGP : http://www.enseirb.fr/~lalet/pubkey

Avatar
aurelien.dehay
Eric Belhomme writes:

j'ai un soucis avec la commande rm :

# rm -f ./*
bash: /bin/rm: Argument list too long

le repertoire en question contient plus de 12000 fichiers... et la commande
s'execute parfaitement lorsqu'il n'y a que quelques dizaines de fichiers...

Quelqu'un a une explication, et un moyen de contourner le pb ?


La taille pour une ligne de commande est limitée. A 64Ko je
crois. Comme le * est remplacé par la liste de tout tes fichiers... Ça dépasse.

un

find . | xargs rm -rf

(dans le bon répertoire) devrait résoudre le problème.

[...]

--
Aurélien DEHAY http://logicielslibres.info

Avatar
Bernard Déléchamp
Eric Belhomme wrote:
j'ai un soucis avec la commande rm :

# rm -f ./*
bash: /bin/rm: Argument list too long

le repertoire en question contient plus de 12000 fichiers... et la commande
s'execute parfaitement lorsqu'il n'y a que quelques dizaines de fichiers...

Quelqu'un a une explication, et un moyen de contourner le pb ?


echo ./*|xargs rm -f

Maintenant, s'il y a des répertoires là-dedans, ou des fichiers avec des
caractères exotiques ou des espaces... A moins, bien sûr que la commande
echo n'ait une limitation elle-aussi.

--
Certains déchets nucléaires produits dans les années 60 resteront
dangereux pendant un demi million d'années. Pour ceux qui sont produits
maintenant, il faudra compter 30 ans de plus.
Philippe Geluck

Avatar
nicolas
On Mon, 21 Jul 2003 19:05:04 +0200, Eric Belhomme wrote:

j'ai un soucis avec la commande rm :

# rm -f ./*


# rm -f . /*
^
La différence est minime !

bash: /bin/rm: Argument list too long

le repertoire en question contient plus de 12000 fichiers... et la
commande s'execute parfaitement lorsqu'il n'y a que quelques dizaines de
fichiers...

Quelqu'un a une explication, et un moyen de contourner le pb ?


Je préfère faire ce genre de manip' osée avec mc, la touche * pour tout
sélectionner dans le répertoire en cours puis la touche F8. Ça évite les
erreurs de frappe et un disque dur vidé.

nicolas patrois : pts noir asocial
--
PEACE

M : La guerre, ça amène la mort, les épidémie, la vermine... la souffrance, la destruction, la peur...
P : ...Et les pacifistes !

Avatar
Eddahbi Karim

[snip]

J'approuve.

Voila ;),
ThE_TemPLaR
Avatar
hamatum
find . -type d -exec rm -rf {} ; est TRES efficace.



"Eric Belhomme" a écrit dans le message de news:

j'ai un soucis avec la commande rm :

# rm -f ./*
bash: /bin/rm: Argument list too long

le repertoire en question contient plus de 12000 fichiers... et la commande
s'execute parfaitement lorsqu'il n'y a que quelques dizaines de fichiers...

Quelqu'un a une explication, et un moyen de contourner le pb ?

--
Rico (RicoSpirit) - http://www.ricospirit.net
Pour en savoir autant que moi sur INN (c.a.d. pas grand chose !) :
http://www.ricospirit.net/inn/


Avatar
TiChou
Dans l'article news:3f1c4792$0$1319$,
hamatum écrivait :

# rm -f ./*
bash: /bin/rm: Argument list too long


find . -type d -exec rm -rf {} ; est TRES efficace.


Et completement idiot car ici un simple rm -rf . suffit et cette réponse ne
correspond pas à ce qu'il a été demandé au départ.

Et au passage : http://www.giromini.org/usenet-fr/repondre.html

--
TiChou


Avatar
Pierre LALET
Et completement idiot car ici un simple rm -rf . suffit et cette réponse ne
correspond pas à ce qu'il a été demandé au départ.


Oui, mais pas là :
[ toto]$ rm -rf .
rm: cannot remove `.' or `..'

Et au passage : http://www.giromini.org/usenet-fr/repondre.html


Tu as bien raison, ça ne fait pas de mal de le rappeler...

pierre

--
Pierre LALET
Elève ingénieur -- ENSEIRB
-- http://www.enseirb.fr/~lalet
clé publique PGP : http://www.enseirb.fr/~lalet/pubkey

Avatar
Christophe Le Gal
# rm -f ./*


# rm -f . /*
^
La différence est minime !


Hein ?!?
Elle est pas minime du tout :
avec sa commande (s'il n'y avait pas trop de fichiers) on efface
le contenu du repertoire courant.
Avec la tienne on efface le contenu de /

Ca m'etonnerait qu'il veuille faire ca.


--
Christophe Le Gal


Avatar
Christophe Le Gal
In article <bfhaq2$aum$, Bernard Déléchamp wrote:

echo ./*|xargs rm -f

Maintenant, s'il y a des répertoires là-dedans, ou des fichiers avec des
caractères exotiques ou des espaces... A moins, bien sûr que la commande
echo n'ait une limitation elle-aussi.


Vu que la limitation est pour tout le monde, je ne vois pas bien ce que
ca change.
ls | xargs rm -f
fera tres bien l'affaire.


--
Christophe Le Gal

1 2