[script-Bash] ls : argument list too long

Fermé
phil - 19 juin 2007 à 10:14
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 19 juin 2007 à 14:43
Salut à tous,

Dans un de mes répertoire j'ai 3 types de fichiers :
*.gse ;'*.normal et *.normal.PgSg
Mon script fonctionne sous bash mais lorsque je fais ls *.normal j'ai un message d'erreur : argument list too long.
J'ai suivie les conseils trouvé sur CCM et je remplace donc cette commande par : ls *.normal | xargs ls mais ça me renvoie tous les fichiers de mon rep et pas seulement ceux finissant par normal ou plus.
Que faire ??

:) Merçi d'avance !

5 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
19 juin 2007 à 12:00
Salut,

T'as essayé avec "find" comme dans l'exemple de la FAQ ?
0
Salut jipicy,

Oui j'ai essayé les 2 méthodes et les deux me donnent le même résultats : l'affichage de tous les fichiers présents dans le rep.
Bon ! d'un autre côté j'ai bêtement réglé le problème en changeant de machine de calcul, du coup ça marche.
Mais ça reste bizarre. Tiens voilà ce que ça donne :
condor.plang$ find . -type -f -name \*normal* | xargs ls
20001229-160121.gse
20001229-160121.gse.normal
20001229-160121.gse.normal.PgSg.PS2PnSn.2-15
20001229-213419.gse
20001229-213419.gse.normal
20001229-213419.gse.normal.PgSg.PS2PnSn.2-15
20001230-150711.gse
20001230-150711.gse.normal
20001230-150711.gse.normal.PgSg.PS2PnSn.2-15
20001231-113509.gse
20001231-113509.gse.normal
20001231-113509.gse.normal.PgSg.PS2PnSn.2-15
20001231-120928.gse
20001231-120928.gse.normal
20001231-120928.gse.normal.PgSg.PS2PnSn.2-15

alors que je voudrais :
20001229-160121.gse.normal
20001229-160121.gse.normal.PgSg.PS2PnSn.2-15
20001229-213419.gse.normal
20001229-213419.gse.normal.PgSg.PS2PnSn.2-15
20001230-150711.gse.normal
20001230-150711.gse.normal.PgSg.PS2PnSn.2-15
20001231-113509.gse.normal
20001231-113509.gse.normal.PgSg.PS2PnSn.2-15
20001231-120928.gse.normal
20001231-120928.gse.normal.PgSg.PS2PnSn.2-15
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > phil
19 juin 2007 à 13:41
Salut,

essaie comme ça
find . -type -f -name 'gse.normal.*' | xargs ls

0
phil > phil
19 juin 2007 à 14:23
Rhraa ! Ca ne marche pas, ça donne le même résultat qu'un simple 'ls'.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895 > phil
19 juin 2007 à 14:27
Et :
find . -type -f -name 'gse.normal.*' -exec echo {} \;
:-))
0
phil > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
19 juin 2007 à 14:39
Ca ne marche pas non plus, mais Dubcek a donné une commande qui fonctionne.
Ca me rend fou de bloquer sur cette simple commande sachant que le reste de mon script va certainement y passer aussi, hahaha.
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
19 juin 2007 à 12:28
Salut,

j'ai eu un souci comme celui-ci !
Je l'ai réglé en lançant le script à partir du dossier contenant les fichiers à utiliser !
Mais je ne suis pas sûr que cela puisse t'aider !

:-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
19 juin 2007 à 12:31
Salut,

mais tu as utilisé xargs il me semble :-)
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
19 juin 2007 à 12:36
oui !
la première fois ça a très bien marché !
Ensuite c'est devenu + ou - alléatoire !
Je sais ce n'est pas normal tu va me dire ! Probablement une erreur de ma part.
Mais ça m'est arrivé ! De toute façon c'est une commande pour lancer des tests donc l'option script n'était plus nécessaire.
J'étais sous Darwin X (MacOS) (ce qui devrait pas changer grand chose !).

:-))
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
19 juin 2007 à 13:44
cette syntaxe :
find . -type -f -name \*normal* | xargs ls
est bien étrange. Et celle là:
find . -type f -name \*normal\* -ls
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
19 juin 2007 à 14:06
Salut,

perso je préfère les apostrophes simples que les antislashes :-) sauf dans les cas où je n'ai pas le choix bien sûr :-)
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
19 juin 2007 à 14:17
Vaste débat.
Ne faut-il pas écrire "barre oblique inversée" ou alors backslash ?
la Commission Générale de Terminologie et de Néologie (CGTN) a du se prononcer !! :-))
Osons : je suis partisan de l'ampersand & et non de la perluette !!
j'aime les arcanes des backslashes dans les scripts ...
0
Alors j'ai tapé cette commande :
find . -type f -name \*normal\* -ls
et ça marche. Le seul détail gênant c'est que ça donne aussi les info du fichier, genre : droit en écriture, en lecture, date de modif....Mais ça marche donc c'est plutôt cool ! Merci dubcek :))))
0

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

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
19 juin 2007 à 14:43
En fait on devrait dire

back = en arrière
slash = oblique

en arrière oblique

Il n'y a pas une barre nulle part :-))

en ce cas je préfère le terme anglais backslash mais je suis sur un site francophne.

si un jour la commision decidera de l'appéler ZORO alors on va demander à Alain DELON ce qu'il pense mais ça sera mieux de voir aussi où il en est avec l'informatique :-))

j'aime les arcanes des backslashes dans les scripts

ça ne me dérange pas non plus, mais je préfère quand mème les apostrophes simples (ou les virgules suspendues ou je ne sais pas quoi ils vont trouver encore CGTN :-)))) quand j'ai quelque chose comme ça

$var = "\\un\\deux\\trois\\quatre\\cinq\\six\\etc\\";

et la même chose
$var = '\un\deux\trois\quatre\cinq\six\etc\';
0