[Unix] Erreur bizarre

Trezeg Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -  
Trezeg Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'essaie de faire des recherches de fichiers dans un répertoire assez gros (96 megas). Le problème apparait lorsque je tape ceci

$:>ll EDMS*
ll: /usr/bin/ls: arg list too long
$:>
Le ll seul fonctionne mais apparemment il n'accepte pas les tris...
Quelqu'un a-t-il une idée sur la question ?
D'avance merci.

Trez

14 réponses

bob031 Messages postés 8158 Date d'inscription   Statut Membre Dernière intervention   473
 
Salut,

arg list too long
il me semble que c'est une histoire de mémoire du bash (trop d'arguments à gérer ou quelque chose comme ça).
Il semble que la commande xargs est faite pour contourner ce genre de problème !

si je dit pas trop de bêtises ....


:-))
0
Trezeg Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci,
cela dit je n'ai aucune sur la maniere d'utiliser cette commande...
Trez
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

suppression impossible liste d arguments trop longue

;-))
0
Trezeg Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
Oui mais...
$>ll *EDMS* | xargs ls | grep *1508113*
ll: /usr/bin/ls: arg list too long
Trez :-(
0

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

Posez votre question
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
find . -name "EDMS*" -exec ll {} \; | grep *1508113*
;-))
0
Trezeg
 
Merci ;)
0
Trezeg Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
Re-,

Quand je lance la commande suggerée par jipicy, je tombe sur ceci :
mercprod@t-280-1:>find . -name "EDMS*" -exec ll {} \; | grep *
ksh: /bin/grep: arg list too long
Broken Pipe
Broken Pipe
Broken Pipe
Broken Pipe
Broken Pipe
Broken Pipe
Broken Pipe

Please help :-((

Merci

Trez
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Re-

Affiche ta commande s'il te plaît et si possible un listing du répertoire où tu fais ta recherche (enfin du moins quelques lignes si trop volumineux ;-)) )
0
Marc
 
Bonjour

Bah euh... "ll" c'est pas une commande, c'est un alias !

La première chose a faire est donc "alias ll" pour voir ce qu'il y a dans ton alias.

Personne n'a pensé a ca ?? hmmm....

Bonne journée
0
Trezeg Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
Hello,

J'ai également essayé le
ls
mais rien n'y fait (ca ne vient pas des alias car la commande marche ailleurs). A vrai dire, j'ai essayé une multitude d'actions sur ce dossier mais je recois systémtiquement le même message car il est trop volumineux...

Trez
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
C'est l'astérisque (*) de "grep *" qui génère l'erreur, il faut lui donner une expression régulière entière et pas un caractère générique. Dans ce cas autant ne rien mettre du tout !
0
Trezeg Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
merci ;)
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

GlobalRegularExpressionPrint c'est un utilitaire qui utilise des regex
* c'est un métacaractère utilisé en tant que quantificateur
dans le cas de shell * veut dire globalisation (ex. trouve les fichiers qu'ont l'extension txt : ls -l *.txt)

dans le cas de grep on écrit
.* qui veut dire n'importe quel caractère (le metacaractère . ) zéro fois minimum et autant que tu peux maximum
0
Trezeg Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
merci pour toutes ces précieuses explications ;-)
0