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

Shell et commandes GNU Discussion :

Script SH: Garder que 10 fichiers dans un dossier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2007
    Messages : 344
    Par défaut Script SH: Garder que 10 fichiers dans un dossier
    Bonjour,

    J'ai une tâche qui crée des fichiers dans un dossiers, mais pas tout les jours, cela est aléatoire, dès fois il faut "attendre" 3 jours avant qu'un fichier apparaisse.

    J'aimerais faire un script de purge, qui va me garder que les 10 derniers fichiers dans ce dossiers et supprimer les autres.

    J'ai trouvé des scripts pour purger des fichiers "plus vieux que" mais c'est pas ce que je recherche.

    Avez-vous une idée de la commande?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,

    oui, il y a une commande pour ce que tu veux faire : info coreutils.info
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    moi je ferai comme ça (au risque de me faire taper dessus ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -1rt | head -n-10 | xargs -ITOTO rm TOTO
    • l'option -1 de ls permet de s'assurer d'un affichage consistant
    • l'option -t de ls demande un listing des fichiers par date de dernière modification
    • l'option -I de xargs rend la commande résistante aux espaces éventuels dans les noms de fichiers (on aurait aussi pu mettre -d'\n' à la place)

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    l'option -1 de ls permet de s'assurer d'un affichage consistant
    ce n'est pas utile : quand la sortie de ls est redirigée, elle affiche toujours un fichier par ligne.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour

    Y a un soucis: Je plussoie la commande, mais, soit on fait un ls -t |head, soit un ls -tr|tail mais pas un ls -rt|head.
    N'est-ce pas ?

  6. #6
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    yop,

    Citation Envoyé par Flodelarab Voir le message
    Y a un soucis: Je plussoie la commande, mais, soit on fait un ls -t |head, soit un ls -tr|tail mais pas un ls -rt|head.
    N'est-ce pas ?
    en soi rien ne l'interdit
    ici c'était surtout pour conserver une cohérence pour que le PO s'y retrouve avec son 10,
    si on veut garder les 10 derniers fichiers uniquement, un ls -rt | head -n-10 est équivalent à un ls -t | tail -n+12 (il faut rajouter 2)

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/02/2015, 08h47
  2. Script shell pour renommer des fichiers dans des sous répértoires
    Par ibuto dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 25/12/2013, 20h52
  3. Réponses: 1
    Dernier message: 25/10/2012, 15h40
  4. Script de renommage de fichiers dans un dossier donné
    Par johnbobby dans le forum VBScript
    Réponses: 2
    Dernier message: 24/07/2012, 16h23
  5. Script lors du dépot d'un fichier dans un dossier
    Par GruZloR dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 05/04/2007, 16h07

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