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

Linux Discussion :

Find non recursif


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 67
    Par défaut Find non recursif
    Bonjour, j'ai besoin d'effecer d'un répertoire les fichiers dont la date de cr"ation est antérieur à un certain nombre de jour.
    JE me suis donc orienté vers la commande find!!!!!
    Mais cette commande propose un parcours recursif Or j'ai des sous répertoires que jue nhe voudrais pas impacter
    Il est apparemment possible de rendre le find non recursif en utilisant l'option prune, mais je dois mal m'y prendre, cela ne marche pas
    Mon code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find $FLF_OUTCFT/. -name "???*" -prune ! -mtime -$DUREE_CONS_FICHIER  -exec rm -f {} \; -print
    Pouvez- vous m'aider?

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find $FLF_OUTCFT/. -name "\?\?\?*" -mtime -$DUREE_CONS_FICHIER  -exec rm -f {} \; -print
    si ce n'est pas des fichier contenant ??? dans le début du nom ils seront quand même traités avec ta méthode et tu vas donc tout vider ! comme si tu avais mis "*"

    d'autre part pour la profondeur de la recherche recursive voir le man page tu peux definir le nombre de niveaux à fouiller

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    utilise l'option -maxdepth
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find $FLF_OUTCFT/.  -maxdepth 1 -name "???*"  -type f  ! -mtime -$DUREE_CONS_FICHIER  -exec rm -f {} \;
    ajoute un -type f pour exclure le fichier de type repertoire

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 67
    Par défaut
    J'vaais bien vu qu'il fallait utiliser cette option mais je suis osus aix 5.2 et l'option maxdepth n'existe pas!!!!!!
    j'ai bien une option depth qui existe mais à laquelle je ne peux pas passer de paramètre!!!!

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 67
    Par défaut
    J'ai trouvé une solution de contournement
    Je n'ai qu'un seul sous répertoire dans le repetoire que je veux nettoyer
    J'ai donc exclu ce repertoire de la commande find
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find ${rep_purge}/ -name save -prune -o  -type f ! -mtime -$DUREE_CONS_FICHIER -exec rm -f {} \; -print
    Ce n'est aps trés elegant mais cela me permet de contourner le probleme pour le moment.

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 67
    Par défaut
    Pour tout le monde
    J'ai trouvé une manière plus propre et qui semble indépendante de la palte-forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd 'mon rep'
    find . \( ! -name . -prune \) -type f -name "ma chaine" -print
    SI ca peut servir à d'autres personnes

  7. #7
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Par défaut
    Citation Envoyé par bob33
    Pour tout le monde
    J'ai trouvé une manière plus propre et qui semble indépendante de la palte-forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd 'mon rep'
    find . \( ! -name . -prune \) -type f -name "ma chaine" -print
    SI ca peut servir à d'autres personnes
    Merci !
    Par contre, pense à mettre un tag [AIX] dans ton titre de fil .. par défaut, c'est du linux ici

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

Discussions similaires

  1. methode me.controls.find non reconnue
    Par geredonis dans le forum VB.NET
    Réponses: 6
    Dernier message: 14/06/2015, 22h00
  2. find non récursif (sans maxdepth)
    Par lennelei dans le forum Solaris
    Réponses: 1
    Dernier message: 19/11/2008, 18h26
  3. Requete de non-correspondance (find unmatch)
    Par zitoune92 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 08/03/2008, 21h43
  4. Recherche de non-correspondance (find unmatch)
    Par zitoune92 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/03/2008, 11h54
  5. Input - Form non validé - Unable to find
    Par ToTo1234 dans le forum Struts 1
    Réponses: 2
    Dernier message: 15/02/2008, 10h23

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