Commande find avec filtre

Bonjour,

Quelqu'un aurait il une solution concernant mon problème.

Lorsque j'éxécute cette commande, elle marche nickel :
find . -name "mmh*presta.edi.*" -mtime -$1 -size +1c -exec ls -rtl {} \;

Par contre celle-ci ne marche pas ?????
find . ! \( -name "mmh*presta.edi.*" -o -name "mmh*sq_teletrans*" \) -mtime -$1 -size +1c -exec ls -rtl {} \;

Elle marche bien avec print comme argument :
find . ! \( -name "mmh*presta.edi.*" -o -name "mmh*sq_teletrans*" \) -mtime -$1 -size +1c -print
mais ce n'est pas le résultat que je veux.

Merci pour votre aide.
Configuration: Windows XP Internet Explorer 6.0

3 réponses

  1. Modérateur
    Salut,

    Essaye comme ça :

    find . ! \( -name "mmh*presta.edi.*" -o -name "mmh*sq_teletrans*" \) -name "mmh*" -mtime -$1 -size +1c -exec ls -rtl {} \;

    ;-))
    1. Salut,

      Non cela ne marche pas, enfin je veux dire qu'elle fonctionne mais qu'elle me donne pas le résultat excompté.

      Au fait je veux qu'elle m'affiche tout les autres fichiers sous la forme du ls sauf les fichiers commencant par les les filtres que j'ai affcihé plus haut "mmh*presta.edi*" et "mmh*sq_teletrans*"

      Merci
      1. Modérateur
        Ben chez moi ça marche ;-\

        [tmpfs]$ ls -1
        fich10.sql
        fich1.sql
        fich2.sql
        fich3.sql
        fich4.sql
        fich5.sql
        fich6.sql
        fich7.sql
        fich8.sql
        fich9.sql
        
        [tmpfs]$ find . ! \( -name "*3.sql" -o -name "*5.sql" \) -name "*.sql" -exec ls -rtl {} \;
        -rw-rw-r--  1 jp jp 0 nov 20 07:40 ./fich10.sql
        -rw-rw-r--  1 jp jp 0 nov 20 07:40 ./fich9.sql
        -rw-rw-r--  1 jp jp 0 nov 20 07:40 ./fich8.sql
        -rw-rw-r--  1 jp jp 0 nov 20 07:40 ./fich7.sql
        -rw-rw-r--  1 jp jp 0 nov 20 07:40 ./fich6.sql
        -rw-rw-r--  1 jp jp 0 nov 20 07:40 ./fich4.sql
        -rw-rw-r--  1 jp jp 0 nov 20 07:40 ./fich2.sql
        -rw-rw-r--  1 jp jp 0 nov 20 07:40 ./fich1.sql
        
        [tmpfs]$ 

        ;-))