[Unix] Erreur bizarre

Trezeg Messages postés 81 Statut Membre -  
Trezeg Messages postés 81 Statut Membre -
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
Configuration: sunOs 5.8

14 réponses

  1. bob031 Messages postés 8228 Statut Membre 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
  2. Trezeg Messages postés 81 Statut Membre 2
     
    Merci,
    cela dit je n'ai aucune sur la maniere d'utiliser cette commande...
    Trez
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    suppression impossible liste d arguments trop longue

    ;-))
    0
  4. Trezeg Messages postés 81 Statut Membre 2
     
    Oui mais...
    $>ll *EDMS* | xargs ls | grep *1508113*
    ll: /usr/bin/ls: arg list too long
    
    Trez :-(
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    find . -name "EDMS*" -exec ll {} \; | grep *1508113*
    ;-))
    0
  7. Trezeg Messages postés 81 Statut Membre 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
  8. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  9. 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
  10. Trezeg Messages postés 81 Statut Membre 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
  11. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  12. Trezeg Messages postés 81 Statut Membre 2
     
    merci ;)
    0
  13. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  14. Trezeg Messages postés 81 Statut Membre 2
     
    merci pour toutes ces précieuses explications ;-)
    0