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

Administration système Discussion :

Savoir si un fichier texte est ouvert ?


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 43
    Par défaut Savoir si un fichier texte est ouvert ?
    Bonjour,

    Comment savoir si un fichier texte (dont je connais le nom) est actuellement ouvert par un autre process ???

    J'ai cherché avec lsof mais cela me donne les process qui ont ouvert des fichiers mais je ne retoruve pas le nom de mon fichier

    merci de votre aide

  2. #2
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lsof chemin_vers_le_fichier
    te donnera juste la ligne ou les lignes où le fichier est ouvert et se terminera correctement si le fichier est ouvert.
    Cette commande ne donnera rien et se terminera avec un code de retour non nul si le fichier n'est pas ouvert.

  3. #3
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 43
    Par défaut
    merci celelibi.

    Je n'arrive pas à faire fonctionner lsof comme tu l'indique.

    J'ai ouvert un fichier avec kwrite : /home/xx/toto.txt

    lorsque je fais :
    lsof /home/xx/toto.txt

    je n'ai aucun résultat

    par contre si je fais :

    lsof /home/xx

    j'ai :

    COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    bash 4203 xx cwd DIR 3,70 4096 3424319 /home/xx
    kwrite 5124 xx cwd DIR 3,70 4096 3424319 /home/xx


    qui m'indique que j'ai un fichier ouvert par kwrite dans ce repertoire, mais je ne sais pas lequel





    Mon problème est de savoir si un fichier est déjà ouvert par un autre process avant de le deplacer pour faire un traitement dessus.
    J'ai un répertoire où je telecharge des fichiers par filezilla.
    D'autre part, j'ai un process qui scrute ce répertoire et qui déplace les fichiers répondant à un certain critère (nom particulier) pour pouvoir les traiter ensuite.
    Dans le cas de gros fichiers, je voudrais savoir quand le process de telechargement en a fini avec le fichier pour ne pas avoir un fichier tronqué.

  4. #4
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    Ton terminal est assez large pour afficher les lignes complètes ?
    Sinon les commandes suivantes permette d'afficher les lignes complètes quitte à ce qu'elles soient sur plusieurs lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    commande | cat
    COLUMNS=0 commande
    Le comportement de ton lsof me semble un peu étrange, c'est normalement l'option +D répertoire (ou bien +d répertoire) qui affiche la liste des fichiers ouverts qui se trouvent dans un répertoire.

    Et sinon, tu es sûr que c'est bien la commande lsof que tu exécute et pas un alias ?
    which lsof devrait te renseigner là dessus.

  5. #5
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 43
    Par défaut
    kwrite doit fonctionner comme vi, cad avec un fichier temporaire.

    J'ai ouvert mon fichier toto.txt avec vi, et là vi cree un fichier .toto.txt.swp sur lequel il travaille

    ce qui fait que lorsque je fait

    lsof /home/xx/toto.txt

    je n'ai rien et lorsque je fais

    lsof /home/xx/.toto.txt.swp

    j'ai la bonne ligne :

    COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    vi 4203 xx 4u REG 3,70 4096 3424319 /home/xx/.toto.txt.swp

    Donc ça marche !!!

    Je vais essayer de l'utiliser dans mon cas particulier.

    Merci pour le coup de main.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/04/2013, 14h45
  2. [XL-2007] comment savoir si mon fichier excel est ouvert avec excel en anglais?
    Par nath-0-0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/05/2010, 15h28
  3. Savoir si un fichier word est ouvert
    Par enchanté dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/01/2008, 10h54
  4. Comment savoir si un fichier Excel est ouvert en lecture seul
    Par patate5555 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/06/2007, 13h53
  5. savoir si un fichier excel est ouvert
    Par toytoy18 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/06/2006, 10h12

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