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

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 7
    Points
    7
    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 éminent sénior 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 : 47
    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
    Points : 12 264
    Points
    12 264
    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
    Points : 5 915
    Points
    5 915
    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
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 7
    Points
    7
    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 éminent sénior 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 : 47
    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
    Points : 12 264
    Points
    12 264
    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
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 7
    Points
    7
    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.

  7. #7
    Expert éminent sénior 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 : 47
    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
    Points : 12 264
    Points
    12 264
    Par défaut
    Citation Envoyé par MogDeChNord
    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.
    suffit de voir si la colonne fait 4 ou 5 caracteres (exemple : 2006 12:30)

    ou encore plus simple de voir si le : est présent.

    ça fait déjà deux solutions au problème.

  8. #8
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    OK mais y'aura un bug au passage à l'an 10000 ... c'est pas toi qui va te coltiner l'astreinte à ce moment là ... tiens ce sera pas moi non plus

    Ca reste du bidouillage, j'aime pas du tout ça mais si y'a pas d'autre moyen ...

    Merci.

  9. #9
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 123
    Points
    28 123
    Par défaut
    Bonjour,

    Citation Envoyé par MogDeChNord
    Ca reste du bidouillage, j'aime pas du tout ça
    Le format d'entrée est double :
    • Mmm jj hh:hh
    • Mmm jj aaaa


    Si tu cherches à utiliser cette entrée, alors il n'est pas possible de faire autrement que de regarder ce qu'il en est du jour actuel et de la date du fichier.

    Attention, sur Solaris, il est bien précisé que l'année n'est affichée que si le fichier a au moins 6 mois.

    Quant à paramétrer LC_DATE, pourquoi pas, mais je te conseil de regarder longuement les man car cela n'a pas l'air aussi simple que ca.

  10. #10
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Bonne année à tous !

    Mon pb n'en est finalement plus un étant donné que le but de la manoeuvre était de tagger ces fichiers pour en faire une purge ultérieure.
    Ils sont dupliqué à leur création avec la date du jour et le fichier avec le nom d'origine est effacé après traitement.

    Beaucoup plus simple comme çà ;-)

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