Forum Programmation.shell Nom du dernier fichier en date.

Posté par .
Tags : aucun
1
28
sept.
2010
Bonjour,

Comme indiqué dans le titre, je voudrais écrire un script qui me retourne le nom du dernier fichier en date de modification d'un répertoire.

Je suppose que ça n'est pas très difficile mais je suis nul (pour l'instant) en Bash.

Question subsidiaire : Je ne m'y connais pas plus en Python mais vu que je dois m'y mettre incessamment, est-ce que ce serait pertinent (rapidité d'exécution, nombre de lignes, ...) d'utiliser ce langage pour des petits problème de ce style ? Et si oui, je commence à chercher de quel côté dans ses fonctions pour y arriver ?

merci d'avance.
  • # Trop fastoche

    Posté par . Évalué à 6.

    En bash:

    ls -rta | tail -1
    • [^] # Re: Trop fastoche

      Posté par (page perso) . Évalué à 4.

      pourquoi "En bash" ? là c'est pareil en dash, csk, ksh, zsh ! :o)

      Sinon faya pour ce qui est ce genre de petites choses le shell est effectivement ce qu'il y a de plus simple, connu de tous, et qui améliorera ton aisance dans le terminal...
      Je t'invite a faire un "man tail" pour capitaliser sur la réponse de "pas_moi"

      Fuse : j'en Use et Abuse !

      • [^] # Re: Trop fastoche

        Posté par . Évalué à 1.

        Oula ! Je m'attendais à une boucle et un if mais non ... J'ai honte. Ça méritait un RTFM.
        Pourtant je suis un utilisateur quotidien de tail, grep, etc ...

        Si je dis que normalement je télétravaille mais qu'aujourd'hui exceptionnellement j'ai du prendre le métro pour rebooter un serveur ça compte comme excuse ?

        Merci beaucoup et désolé pour le dérangement.
        • [^] # Re: Trop fastoche

          Posté par (page perso) . Évalué à 4.

          Et nous qui te prenions pour un newbee ! Bouuuuuuh ! :-P
          Bon tu connaissais pas l'option "-t" ! Mais même tu aurais pu t'en sortir avec un :

          ls -al --time-style="+%Y%m%d%H%m%s" | sort -k 6 | tail -1 | awk '{print $NF}'

          Fuse : j'en Use et Abuse !

          • [^] # Re: Trop fastoche

            Posté par . Évalué à 3.

            Tant qu'à vouloir frimer, autant bien le faire : c'est %M pour les minutes, %S pour les secondes et le tri n'est pas correct si les heures, minutes, secondes sont traitées avec la date.

            ls -al --time-style="+%Y%m%d %H%M%S" | sort -rk 6,7 | head -1 | awk '{print $NF}'

            Mais bon, ls -at | head -1 c'est quand même plus cool...
            et hop, un caractère de moins que "pas_moi" \o/
            • [^] # Re: Trop fastoche

              Posté par (page perso) . Évalué à 2.

              Effectivement j'y suis allé un peu vite sur le format 'date', au lieu de faire le truc vite fait de tête j'aurais du payer mon "man date" et vérifier.... bouuuuh honte sur moi !

              Sinon je ne te suis pas sur le problème de sort... Il n'y a aucune raison que cela ne marche pas ! Et ça marche très bien chez moi !
              => Ton sort est buggé ?

              Fuse : j'en Use et Abuse !

              • [^] # Re: Trop fastoche

                Posté par . Évalué à 1.

                Le défaut du tri se voit si tu as des fichiers de quelques minutes ou secondes d'écart.
                En introduisant un séparateur entre date et heure, ça me permet de trier la colonne date puis celle de l'heure, les plus récents en premier.
                Y a pas de bug dans les commandes bash. En général, quand je n'ai pas le résultat attendu, c'est qu'il y a une explication que je finis par trouver... ou pas.
        • [^] # Re: Trop fastoche

          Posté par . Évalué à 3.

          si ca peut te faire plaisir

          RTFM !!!

          ;)
    • [^] # Re: Trop fastoche

      Posté par (page perso) . Évalué à 5.

      En zsh :
      echo *(om[1]^/)
      • [^] # Re: Trop fastoche

        Posté par . Évalué à 2.

        J'ajouterais que pour des traitement plus complexes. zsh possède un module stat qui est très très très puissant. Il est possible de sortir n'importe quel time d'un ensemble de fichier dans un tableau associatif.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.