IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Solaris Discussion :

find non récursif (sans maxdepth)


Sujet :

Solaris

  1. #1
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut find non récursif (sans maxdepth)
    Bonjour à tous,

    Voilà, cela fait plusieurs fois que je recherche sur internet une façon d'obtenir un find non récursif... j'ai du mal à croire que cela ne soit pas possible, et pourtant, mis à part l'option maxdepth, je n'ai rien trouvé sur le sujet.

    Or, évidemment, sous Solaris, maxdepth n'existe pas

    Donc ma question : imaginons que je veuille rechercher tous les fichiers de plus de 90 jours dans un dossiers SANS parcourir tous ses sous-dossiers, en supposant qu'il y a beaucoup trop de sous-dossiers pour que je les spécifie à la main et que je ne peux pas trouver de nom communs à tous mes fichiers. Je fais comment ?!

    Je dois avouer avoir un peu de mal avec l'option -prune : si j'ai, par exemple, un sous-dossier qui s'appelle temp, je peux trouver tous les fichiers du dossier courant avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name temp -prune -o -print
    Pourquoi ne peut on pas faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -type d -prune -o -print
    ?

  2. #2
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Raaahhhhh,

    je déteste ça... quand en écrivant ma question, je trouve une solution

    Bon, ça pourra servir:

    en fait, ma seconde commande ne fonctionne pas car :

    va retourner également le dossier courant ! Donc, je lui demande de ne pas chercher dans le dossier courant... forcément, il aime moyen et ne renvoie rien

    L'astuce consiste donc à ajouter un petit prédicat pour qu'il évite de renvoyer le dossier courant comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -type d -name "*"
    (c'est pas très beau, mais ça marche...)

    d'où la commande terminale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -type d -name "*" -prune -o -type f -print
    renvoie tous les fichiers du dossier courant (et seulement les fichiers grâce à l'option type f). Il devient donc possible d'adapter facilement pour ajouter des filtres sur les dates et autres !

    /me est content !!

    Merci quand même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter clé étrangère à table non vide sans erreur 1452?
    Par gb-ch dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 17/06/2018, 17h45
  2. Réponses: 9
    Dernier message: 02/06/2008, 11h02
  3. Réponses: 3
    Dernier message: 22/03/2007, 21h23
  4. Find non recursif
    Par bob33 dans le forum Linux
    Réponses: 6
    Dernier message: 20/10/2005, 17h23
  5. FloodFill étendu non récursif
    Par jlf dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 06/06/2005, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo