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. 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. 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
    3. 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. oh, avec des | et des ls on devrait y arriver, non ?
        0
        1. 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. Pour AIX/Solaris/etc vous pouvez utilisez -prune
            (Je viens de voir que la réponse a déjà été donné..)
            0