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

[HS Debian] rm : liste d'arguments trop longue

26 réponses
Avatar
Steve
Bonsoir,

J'ai un r=C3=A9pertoire contenant 10G de donn=C3=A9es r=C3=A9parties en pet=
it fichier (genre=20
50 ko, donc =C3=A7a fait *beaucoup* de fichiers). Je d=C3=A9sire effacer to=
us les=20
fichiers. Mais :

$ rm *
bash: /bin/rm: Liste d'arguments trop longue
$ rm 3*
bash: /bin/rm: Liste d'arguments trop longue
$ rm 31*
bash: /bin/rm: Liste d'arguments trop longue
etc...
=2E
=2E
=46inalement
$ rm 32-20070322231 =C2=ABtab=C2=BB
Display all 5982 possibilities? (y or n)n
(me dis que c'est bon .., mais)
$ rm 32-20070322231*
bash: /bin/rm: Liste d'arguments trop longue
$ rm 32-20070322231 =C2=ABtab=C2=BB
Display all 600 possibilities? (y or n)n
$ rm 32-200703222311*
$=20
Enfin ! Donc le nombre d'arguments est au plus de 5982. Ce qui me m=C3=A8ne=
=C3=A0 me=20
poser deux questions :

1- quelle est le nombre maximal ? comment le trouver ?
2- comment m'en affranchir dans mon cas ?

Merci pour vos r=C3=A9ponses et bonne fin de semaine.
=2D-=20
steve

6 réponses

1 2 3
Avatar
Vincent Lefevre
On 2007-03-23 18:28:10 +0100, Sylvain Sauvage wrote:
Steve, vendredi 23 mars 2007, 18:13:48 CET
> 1- quelle est le nombre maximal ? comment le trouver ?

C'est plus la taille (en caractères) que le nombre.
Pour connaître cette limite, tu peux lire les sources de bash...



Utilise zsh, il n'y a pas de limite. La seule que tu auras sera
celle du noyau, mais pour éviter cette limite, tu peux toujours
utiliser le rm de zsh (module zsh/files).

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Vincent Lefevre
On 2007-03-24 14:12:56 +0100, François TOURDE wrote:
Le 13596ième jour après Epoch,
François TOURDE écrivait:
> Tu aurais pû aussi faire:
>
> $ rm *

Tiens, après vérification, il semble que cela ne marche plus :(

Je suis pourtant quasiment sûr que rm était capable de faire
l'expansion lui-même... Ce qui empêchait d'effacer des fichiers comme
'?', '*', et autres...



Il n'en a pas le droit dans le comportement par défaut: ce ne serait
pas compatible POSIX (ni compatible avec le comportement traditionnel
de rm). En revanche, rien n'empêche un rm d'avoir une option (non
standard) qui fait ce que tu veux.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Michel Campfort
Yves Rutschle a écrit :
[ . . . ]
Nombre d'arguments:
:~/try2$ ( for i in `seq 1 32766`; do echo -n "a "; done ) > toto
:~/try2$ touch `cat toto`
:~/try2$ ( for i in `seq 1 32767`; do echo -n "a "; done ) > toto
:~/try2$ touch `cat toto`
bash: /usr/bin/touch: Argument list too long


Voilà voilà.

Y. -- Oh, bah, on s'est bien amusés.



Bonjour Yves ,

J'ai voulu voir sur un amd64 , etch en 64 bits , à jour :

:~/XX$ ( for i in `seq 1 16383`; do echo -n "a "; done ) > toto
:~/XX$ touch `cat toto`
bash: /usr/bin/touch: Liste d'arguments trop longue
:~/XX$ ( for i in `seq 1 16382`; do echo -n "a "; done ) > toto
:~/XX$ touch `cat toto`
:~/XX$

Voici la fin de mes investigations . La ligne de commande serait-elle
deux fois plus courte en 64 bits ?

Amicalement

Michel

--
Tuxophiles, bien sûr que nous sommes tuxophiles, et winophobes en plus.
Mais il ne faut pas confondre tuxophilie et tuxo-intégrisme, l'amalgame
est fait beaucoup trop rapidement par les winophiles-tuxophobes .


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Yves Rutschle
On Wed, Mar 28, 2007 at 05:38:07PM +0200, Michel Campfort wrote:
Voici la fin de mes investigations . La ligne de commande serait-elle
deux fois plus courte en 64 bits ?



Use the source, Luke.

Le code qui fait la comparaison est le suivant:

bprm->p = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *);
[...]
bprm->argc = count(argv, bprm->p / sizeof(void *));
if ((retval = bprm->argc) < 0) goto out_mm;

sizeof(void*), ça doit faire 8 sur archi 64 et ça fait 4 sur
archi 32. Donc effectivement ta ligne de commande va etre
moitiée plus courte.

Y.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Michel Campfort
Yves Rutschle a écrit :
On Wed, Mar 28, 2007 at 05:38:07PM +0200, Michel Campfort wrote:
Voici la fin de mes investigations . La ligne de commande serait-elle
deux fois plus courte en 64 bits ?



Use the source, Luke.

Le code qui fait la comparaison est le suivant:

bprm->p = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *);
[...]
bprm->argc = count(argv, bprm->p / sizeof(void *));
if ((retval = bprm->argc) < 0) goto out_mm;

sizeof(void*), ça doit faire 8 sur archi 64 et ça fait 4 sur
archi 32. Donc effectivement ta ligne de commande va etre
moitiée plus courte.

Y.



Merci beaucoup pour tes explications .

L'adage est respecté : "il vaut mieux 1 qui sait que 10 qui cherchent" .

Amicalement

Michel

--
Tuxophiles, bien sûr que nous sommes tuxophiles, et winophobes en plus.
Mais il ne faut pas confondre tuxophilie et tuxo-intégrisme, l'amalgame
est fait beaucoup trop rapidement par les winophiles-tuxophobes .


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Yves Rutschle
On Thu, Mar 29, 2007 at 07:12:40PM +0200, Michel Campfort wrote:
L'adage est respecté : "il vaut mieux 1 qui sait que 10 qui cherchent" .



J'objecte, je ne savais rien de tout ça il y a une semaine,
les raisons de mon "savoir" se résument à un peu de
curiosité et bcp de plus pour la question originale, et bcp
de curiosité pour ta seconde questions.

Tout ça, je l'ai bien trouvé dans le source.

L'adage est respecté: "il vaut mieux 1 gars qui peut
chercher dans le code disponible librement que 10 qui savent
mais ne peuvent rien dire car ils ont signé un NDA."

Y. -- heu, j'ai inventé mon adage.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2 3