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 :

Connaitre la date d'un fichier


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Par défaut Connaitre la date d'un fichier
    Bonjour,

    Je désire obtenir la date d'un fichier dans un script au format YYYY-MM-DD (c'est pour le renommer pour garder un historique).

    Le script doit être comptaible Linux et UnixWare.

    Sous linux j''ai trouvé en faisant ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls --full-time toto.txt | awk ' { print $6 } '


    Mais cette option de ls n'existe pas sous Unixware, la page de man me dis que l'option "-l" affiche la date en fonction de la variable LC_TIME mais comment la paramétrer pour obtenir mon résultat ?

    Si vous avez une autre solution plus portable que via "ls" je suis preneur aussi.

    Merci d'avance

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mv FICHIER FICHIER`ls -l FICHIER | awk '{ print $7"-"$6"-"$8}'`
    là j'ai fait avec l'heure mais avec l'année ça marche aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /tmp>touch toto
    /tmp>mv toto toto`ls -l toto | awk '{print $7"-"$6"-"$8}'`
    /tmp>ll toto*
    -rw-rw-rw-   1 root     system         0 Dec 27 12:10 toto27-Dec-12:10
    /tmp>rm toto

  3. #3
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Je ne sais pas si "stat" existe sous unixware mais c'est une façon assez pratique pour récupérer une série de renseignements sur un ou plusieurs fichiers

  4. #4
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Par défaut
    frp31 > Mais "ls -l" n'affiche pas l'année !

    becket > J'y avait pensé mais non, cette commande n'est pas dispo sous UnixWare.

  5. #5
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    si ls -l affiche l'année
    mais pas l'année courante
    si tes fichiers sont de 2006 = heure sinon = année.

    de plus tu peux faire pareil en FIXANT en dur l'année dans la commande awk
    ce qui résoud ton problème.

    Enfin pour faire propre tu peux tester si tu as l'année affichée ou non et si oui alors copier dans le nouveau nom else forcer l'année courante dans le nouveau nom .

    tout simplement

    N'utilises pas stat car c'est pas forcément présent sur tout système donc à proscrire un script doit forcément être le plus universel possible. (c'est un de ses rôles/devoirs)

  6. #6
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Par défaut
    Merci frp31 mais si ton raisonnement parait est simple, il n'en est pas de même de sa mise en application.

    En effet comment savoir si ce qui est affiché est une date ou un heure ?

    Pas envie de mettre en place une usine à gaz juste pour archiver un fichier qui est une option sans grande valeur ajoutée dans mon projet.

Discussions similaires

  1. [Débutant] connaitre la date fichier/repertoire
    Par silace dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/06/2012, 15h07
  2. Connaitre la date de création d'un fichier
    Par olive-andre dans le forum AIX
    Réponses: 1
    Dernier message: 16/06/2008, 17h35
  3. [Layout-Date] Configuration par fichier
    Par Koko22 dans le forum Struts 1
    Réponses: 4
    Dernier message: 28/07/2004, 09h39
  4. [JSP] Connaitre la taille d'un fichier
    Par dst dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/06/2004, 17h22
  5. [ICS FtpClient] Date modif de fichier et listage de dossier
    Par Ingham dans le forum Composants VCL
    Réponses: 8
    Dernier message: 13/06/2004, 19h54

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