[Unix] Erreur bizarre

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. 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 ....

    :-))
    1. Merci,
      cela dit je n'ai aucune sur la maniere d'utiliser cette commande...
      Trez
      1. Modérateur
        Salut,

        suppression impossible liste d arguments trop longue

        ;-))
        1. Oui mais...
          $>ll *EDMS* | xargs ls | grep *1508113*
          ll: /usr/bin/ls: arg list too long
          
          Trez :-(
          1. 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
            1. Modérateur
              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 ;-)) )
              1. 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
                1. 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
                  1. Modérateur
                    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 !
                    1. Modérateur
                      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