Posez votre question Signaler

Utiliser la commande FIND non recursive [Résolu]

noury - Dernière réponse le 6 mai 2011 à 18:54
Bonjour,
est ce que quelqu'un c'est comment utiliser la commande find sans descendre dans l'arborescence des répertoires ?
Lire la suite 

Utiliser la commande FIND non recursive »

12 réponses
Réponse
+6
moins plus
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)
Ajouter un commentaire
Réponse
+2
moins plus
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
den07y - 25 mars 2010 à 14:58
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)}'
Antoine - 4 janv. 2011 à 16:29
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.
Aleph - 6 mai 2011 à 18:54
Merci d'avoir ressorti cette solution. Elle vient de me servir (2011).
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
oh, avec des | et des ls on devrait y arriver, non ?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Pour AIX/Solaris/etc vous pouvez utilisez -prune
(Je viens de voir que la réponse a déjà été donné..)
Ajouter un commentaire
Ce document intitulé « Utiliser la commande FIND non recursive » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?