Liste d'arguments trop longue avce un ls

Bonjour,

voila que je tente… pour le moment je ne fais de traitement…

for i in $(ls -d */*.html);do echo $i;done;
bash: /bin/ls: Liste d'arguments trop longue


la je bloque car j’ai un pb avec mon ls…
avez vous une astuce ?

cordialement
Merci d’avance

=========================================
bon je fais une double boucle et c’est ok
désolé

Bonjour bobylapointe

Je me suis permis de reformater la ligne de commandes citée dans ton message,
en ajoutant avant et après le block de texte à formater, 3 backticks AltGr+7au début d’une ligne vide,
comme ci-dessous :

```plain
Une ligne du block de texte collé  qui sera formaté Le block de texte collé  qui sera formaté Le block de texte collé  qui sera formaté Le block de texte collé 
Une ligne de plus de blabla
Une autre ligne de plus de Une ligne du block de texte collé  qui sera formaté 


----------
Il vaut mieux utiliser un tableau
pour ensuite en lister les éléments,
sinon : 

```bash
michel@debg53sw:~$ for i in $(ls -d */*.html); do echo $i;done
Bureau/android-security.html
Bureau/bookmarks.html
Bureau/Les
forums
de
debian-fr.html
michel@debg53sw:~$ 

alors qu’avec un tableau :

michel@debg53sw:~$ monTableau=( */*.html ); for fich in "${monTableau[@]}"; do echo "${fich}"; done
Bureau/android-security.html
Bureau/bookmarks.html
Bureau/Les forums de debian-fr.html
michel@debg53sw:~$ 

ou ça, sinon:
for i in *.html ; do echo "$i" ; done fichier1.html fichier2.html Les forums de Debian.html
C’est moins l’utilisation d’un tableau que la protection du paramètre i par des " qui permet d’afficher correctement les fichiers dont le nom contient des espaces.

Y a-t-il un avantage en particulier à utiliser un tableau ?

ça fonctionne en récursif ?? pas sure

Non effectivement, il faut dans ce cas:

$ for i in */*.html ; do echo "$i" ; done
dir1/file1-1.html
dir1/file1-2.html
dir1/file1-3.html
dir2/file2-1.html
dir2/file2-2.html
dir2/file2-3.html
dir3/file3-1.html
dir3/file3-2.html
dir3/file3-3.html

En fait il faut simplement faire ce que tu as écrit dans ton premier message, mais sans le point-virgule de trop après done, en protégeant le paramètre i avec des guillemets, et l’utilisation de ls est superflue.