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 et existence d'un fichier


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut find et existence d'un fichier
    Bonjour,
    J'aimerais faire un test sur la taille d'un fichier afin de savoir si je dois arrêter mon programme. Si la commande find suivante trouve un fichier inférieur à 2Mo:

    find . -name "nom_fichier*.txt" -size -2M

    alors le programme est stoppé et un message est affiché:

    exit 1
    echo "Fin du programme"

    Pouvez-vous me dire comment faire çà en l'intégrant avec la commande find ?
    Est-t-il possible de retirer l'affichage des résultats de la commande find afin de seulement afficher le message si la condition est vérifiée?

    Merci d'avance.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    si tu fais ton prog en C, il sufit d'utiliser la fonction stat

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    J'ai écrit ce programme en shell. Je crois qu'il est possible de compléter la commande find avec un "|" , et un "if" contenant ce que je veux faire au cas où la condition est vérifiée. Il y a peut être plusieurs solutions pour le faire et peut être avez-vous une idée pour une solution qui fonctionne?

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 596
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 596
    Points : 19 481
    Points
    19 481
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    find . -name "nom_fichier*.txt" -size -2M && {
    echo "Fin du programme"
    exit 1
    } || {
    echo "Le programme se poursuit..."
    }
    ...
    ?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Post-it Voir le message
    J'ai écrit ce programme en shell.
    alors ce n'est pas un programme mais un script..


    Pour ta question un petit "man find" te donnera des chose comme l'option exec, et dans ce exec tu peux faire un if ..


    [Grilled]

    Ou alors la solution ci-dessus

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponses.
    La fonction stat m'a donné de bons résultats.

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 739
    Points : 31 068
    Points
    31 068
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Post-it Voir le message
    Bonjour,
    J'aimerais faire un test sur la taille d'un fichier afin de savoir si je dois arrêter mon programme. Si la commande find suivante trouve un fichier inférieur à 2Mo:

    find . -name "nom_fichier*.txt" -size -2M

    alors le programme est stoppé et un message est affiché:

    exit 1
    echo "Fin du programme"

    Pouvez-vous me dire comment faire çà en l'intégrant avec la commande find ?
    Est-t-il possible de retirer l'affichage des résultats de la commande find afin de seulement afficher le message si la condition est vérifiée?

    Merci d'avance.
    Apparemment, tu connais ton fichier donc t'as pas besoin de le chercher donc le find est inutile.
    En utilisant wc -c le_fichier_en_question tu obtiendras sa taille en octet. Te suffira donc simplement de tester si elle est inférieure ou supérieure à 20971520...

    Tu peux aussi essayer de voir avec la commande du qui donne un résultat analogue...

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Apparemment, tu connais ton fichier donc t'as pas besoin de le chercher donc le find est inutile.
    En utilisant wc -c le_fichier_en_question tu obtiendras sa taille en octet. Te suffira donc simplement de tester si elle est inférieure ou supérieure à 20971520...

    Tu peux aussi essayer de voir avec la commande du qui donne un résultat analogue...


    très bonne remarque.. J'avais même pas vu

Discussions similaires

  1. Vérification de l'existence d'un fichier
    Par alfu dans le forum ASP
    Réponses: 2
    Dernier message: 06/10/2004, 14h29
  2. [C++ .NET] Test existence d'un fichier
    Par remixxl dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 26/07/2004, 20h21
  3. Réponses: 3
    Dernier message: 24/06/2004, 12h23
  4. tester l existence d un fichier sous turbo pascal
    Par Newllite dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 25/01/2004, 13h47
  5. Peut on tester l'existence d'un fichier ?
    Par Alamassepointcom dans le forum Flash
    Réponses: 2
    Dernier message: 10/10/2002, 13h10

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