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

Langage Perl Discussion :

Récupérer la date complète de la création d’un fichier sous Unix


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Récupérer la date complète de la création d’un fichier sous Unix
    Bonjour tout le monde,

    J’espère que je ne me trompe pas d’endroit pour poster mon problème.
    Je souhaiterai récupérer la date de création et /ou dernière modification d’un fichier sous Unix.
    Malheureusement d’après mes recherches les commandes natives à Unix ne donnent pas l’année de création et./ou modification des fichiers ou répertoires ( sauf peut être les fichiers qui ont l’age de plus de 6 mois ).
    Je me demande si cela n’est pas possible en passant par le Perl et combinant avec le Shell.

    Par avance Merci.

    Jasmine.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Par défaut
    Il n'est pas possible d'obtenir la date de création d'un fichier sous Unix / Linux.
    Seulement la date de la dernière modification.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Bonjour,

    Ce n'est pas que les commandes Unix ne donnent pas l'année de création, c'est que si le fichier à moins de 6 mois, Unix affiche l'heure, sinon la date.

    Pour obtenir une date complète, tu peux utiliser la commande stat, ou alors écrire un script perl qui te le retourne (ça marche aussi, c'est ce que j'ai fais)

    Voilà mon code pour obtenir la date de modification
    :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    perl -e 'use POSIX qw(strftime);print strftime("%Y:%m:%d:%H%M", localtime( (stat($ARGV[0]))[9] )), "\n";' $FILE
    PS : Bon je sais que ce n'est pas très propre, mais ça fonctionne. Ceci te renvoie la date de modification.

    Lilian.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci ça marche impicable.
    maintenant je souhaite appliquer le même principe sur un ensemble de fichier( récursive) et de répertoires, est il possible?
    Merci encore.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Bonjour,

    Oui c'est possible,

    Vous pouvez écrire un script prenant en argument une liste de fichiers, et appeler cette commande pour chacun des fichiers de la liste.

    Lilian.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci Lilian,
    et comment mettre en oeuvre sa ?
    je connais absolument rien en perl.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Bonjour,

    Une possibilité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #!/usr/bin/perl -w
    use strict;
    use warnings;
    use POSIX qw(strftime);
     
    foreach my $FILE (@ARGV) 
    {
        printf "$FILE : ";
        print strftime("%Y:%m:%d:%H%M", localtime( (stat($FILE))[9] )), "\n";
    }
    Lilian.

Discussions similaires

  1. Création de fichier sous tomcat
    Par Simvetanylen dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 12/05/2011, 09h54
  2. Création de fichier sous vista
    Par donnadieujulien dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 15/03/2009, 17h26
  3. création de fichier sous le format CSV
    Par nguex dans le forum Windows
    Réponses: 1
    Dernier message: 20/04/2007, 20h36
  4. Réponses: 6
    Dernier message: 10/11/2006, 15h00
  5. Création de répertoires sous Unix et Windows
    Par xzed dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/05/2006, 16h31

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