Utiliser la commande FIND non recursive

Résolu
Bonjour,
est ce que quelqu'un c'est comment utiliser la commande find sans descendre dans l'arborescence des répertoires ?

7 réponses

  1. Modérateur
    Tu utilises l'option -maxdepth
    find . -name '*.c'   -maxdepth 1 -type f 
    

    --> tous les fichiers du répertoire courant.

    Johan
    Gates gave you the windows.
    GNU gave us the whole house.(Alexandrin)
    15
    1. Pour AIX/Solaris/etc vous pouvez utilisez -prune
      (Je viens de voir que la réponse a déjà été donné..)
      0
      1. Je ressors le sujet de sa tombe au cas où quelqu'un tombe dessus lors d'une recherche.
        En fait, il y a une solution avec prune :

        find . \( -type d ! -name . -prune \) -o -type f -print

        1) On indique que les répertoires qui ne s'appellent pas "." ne sont pas parcourus
        2) On demande l'affichage des fichiers
        7
        1. God bless you ;-)
          0
        2. merci
          0
        3. et sinon sous AIX il suffit d'utiliser la commande ls sans filtre (la limitation du ls n'apparait qu'avec des filtres).
          donc ls -1|grep TOTO pour filtrer tous les fichiers du répertoire courant qui contiennent "TOTO"
          ou ls -1|awk '/^TOTO.*$/' pour filtrer tous les fichiers du répertoire courant qui commencent par TOTO ( etc...)
          => pas de récursivité
          pour supprimer (exemple avec tous les fichiers commençant par TOTO:

          ls -1|awk '/^TOTO.*$/{system("rm -f " $0)}'
          0
        4. Un autre exemple (qui a fonctionné sous HPUX)

          Pour supprimer tous les fichiers plus vieux que 3 jours que dans ce répertoire....
          find . \( -type d ! -name . -prune \) -o -type f -mtime +3 -exec echo rm {} \; > cleanup.sh

          il suffit ensuite d'exécuter cleanup.sh après vérification.
          0
        5. Merci d'avoir ressorti cette solution. Elle vient de me servir (2011).
          0
      2. non non, on peut ou on peut pas mais il faut savoir que ça ne marche que sous Linux, point barre.
        A priori on devrait clore ce sujet et statut résolu.
        0
        1. oh, avec des | et des ls on devrait y arriver, non ?
          0
          1. bonjour

            J'ai la même question mais pour AIX/Solaris/etc, c'est pà dire pas Linux !
            -[min/max]depth n'existe pas.

            Je pense personellement que c'est impossible, maisquelqu'un a peut être un autre avis ?
            0
            1. ben fais un man find pour plus d'infos su la commande find de linux.

              find dossier_ds_lequel_tu_cherches -name nom_du_fichier_a_chercher

              Bahan

              Close the world.||.txen eht nepO
              0
              1. hey biloute.
                Vu qu'il y a 15000 lignes de manuel -> tu est HS
                0