• Passer à la navigation principale
  • Passer au contenu principal
  • Passer au pied
TechLila

TechLila

Bord saignant, toujours

  • Accueil
  • À Propos
  • Contact
  • Aubaines et offres
Techlila
Partage
Twitter
Partage
Épingler
5 Partages
Commandes Linux avancées
Suivant

Linux Hands On : les commandes de terminal avancées

Supprimer les fichiers de plus de 'x' jours sous Linux

TechLila ordinateur Linux

Supprimer les fichiers de plus de 'x' jours sous Linux

Avatar pour Rajesh Namase Rajesh Namase
Dernière mise à jour le: 30 novembre 2020

Aujourd'hui, nous allons vous montrer un moyen par lequel vous pouvez supprimer les fichiers datant de plus de « X jours ». Supposons que vous souhaitiez supprimer des fichiers de plus de 7 jours, cet article vous aidera à le faire. L'utilitaire find vous permet de passer quelques arguments intéressants, dont un pour exécuter une autre commande sur chaque fichier. Afin de déterminer quels fichiers sont plus anciens qu'un certain nombre de jours, nous utiliserons ceci trouver l'utilité puis utilisez le commande rm pour les supprimer. La syntaxe de la commande est la suivante :

trouver /chemin/vers/fichiers* -mtime +5 -exec rm {} \;

Nous ne sommes pas responsables des pertes de données qui pourraient survenir. Nous vous avons recommandé au lister les fichiers et vérifier avant de les supprimer, en exécutant la commande suivante :

trouver /chemin/vers/fichiers* -mtime +5 -exec ls {} \;

Remarque: Il y a des espaces entre rm, {} et \;

Supprimer les fichiers de plus de 5 jours
Voir également
Comment créer un référentiel sous Linux

Explication de la commande :

Le premier argument de la commande ci-dessus est le chemin d'accès aux fichiers. Le deuxième argument est -Mtime est utilisé pour spécifier combien de jours le fichier est vieux. Si vous entrez +5, il trouvera les fichiers de plus de cinq jours. Le dernier argument est Exec- vous permet de passer une commande telle que rm. Les {} \ ; à la fin est nécessaire pour terminer la commande.

Cela devrait fonctionner sur presque toutes les versions de Linux comme Ubuntu, Fedora, Red Hat, Suse, etc. Si vous rencontrez un problème qui semble tout à fait impossible ici, faites-le nous savoir dans les commentaires ci-dessous.

Partage
Twitter
Partage
Épingler
5 Partages

Divulgation: Notre contenu est pris en charge par les lecteurs.

Partager c'est aimer

Partage
Twitter
Partage
Épingler
5 Partages
Avatar pour Rajesh Namase

Rajesh Namase

Rajesh Namase est un blogueur professionnel et fondateur du blog TechLila. En outre, il est un entrepreneur passionné, un spécialiste du marketing Internet et un passionné de fitness.

Catégories

  • Linux

Tags

Commandes Linux, Tutoriels Linux

Interactions Reader

Ce que nos propriétaires en disent

  1. Avatar pour Suraj SalunkheSourate Salunkhe

    J'ai utilisé cette astuce ! Astuce géniale! Merci d'avoir partagé une si bonne astuce :)

    Répondre
  2. Avatar pour Amruta PatilAmruta Patil

    Ya j'ai utilisé cette cammand pendant la session pratique de RHCE.

    Répondre
  3. Avatar pour BenBen

    find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld

    alias 5DayLs="find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld"

    Vous avez préparé quelque chose à partir de votre suggestion ici. Une méthode pour faire une liste de fichiers en texte brut de fichiers vieux de cinq jours. Il est plus facile de conserver un enregistrement pour la visualisation avant de supprimer des fichiers. Les utilisateurs peuvent ensuite utiliser cat, vi, vim, gedit, emacs pour voir ce qu'ils peuvent jeter.

    find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld

    Le décomposer ./ est le répertoire actuel. Trouvez en utilisant un répertoire courant souvent plus sûr qu'en utilisant le / cannon. >> ajoute à un fichier, s'il n'existe pas, il est créé.

    Même pensé que cela peut être utile comme alias. Peut/devrait probablement le porter d'abord sur un script shell. Être paresseux cependant, tard ici.

    Répondre
  4. Avatar pour Ben PiperBen Piper

    Merci! J'ai utilisé cette syntaxe dans une tâche cron.

    Répondre
  5. Avatar pour VivianeVivian

    La bonne astuce pour supprimer les fichiers plus anciens que certains jours. Cependant, si votre liste d'arguments est longue (je pense que le maximum est de 65535 ou quelque chose du genre), cela ne fonctionnera pas.

    J'ai un script personnalisé qui fait le travail :


    #!/bin/bash

    cd /directory-to-be-checked
    allfiles=`ls`
    NOW=`date +%s`
    for filename in $allfiles
    do
    OLD=`stat -c %Z $filename`
    if [ "$2" == "" ]
    then
    DELAY=86400
    else
    let "DELAY=$2 * 86400"
    fi
    AGE=`expr $NOW - $OLD`
    #echo "Delay is $DELAY and Age is $AGE"
    #exit 0
    if [ $AGE -gt $DELAY ]
    then
    #echo "File $filename is $AGE"
    fstamp=`ls -l $filename`
    if [ "$1" == "DEL" ]
    then
    echo "Deleting file $filename"
    `rm -f $filename`
    else
    echo "$fstamp"
    fi
    fi

    Terminé.

    Répondre
    • Avatar pour Rajesh NamaseRajesh Namase

      Merci d'avoir donné le script.

      Répondre
      • Avatar pour VivianeVivian

        Votre bienvenue Namase.

        Appelez le script comme ceci :

        ./scriptname.sh DEL numDays

        Si numDays n'est pas spécifié, il utilisera le minimum de 1 alors assurez-vous de spécifier numDays. Je ne suis pas responsable de la façon dont vous utilisez ce script et de toute perte de données pouvant survenir.

        Répondre
  6. Avatar pour PawanPawan

    si je veux supprimer les répertoires et les fichiers de 30 jours sur ma machine distante et une chose à l'exclusion des répertoires 1 et 2 ou 3 et comment puis-je faire cela .. ?? S'il vous plaît partager vos pensées.

    Répondre
  7. Avatar pour AliAli

    J'utilise cette technique c'est très utile pour supprimer le fichier trc dans oracle

    Répondre
  8. Avatar pour EthanEthan

    Merci de partager cette commande utile pour tous les utilisateurs. Nous pouvons facilement supprimer les anciens fichiers sous Linux. Je le cherche aussi et j'ai enfin la solution ici.

    Répondre
  9. Avatar pour GregGreg

    Cela permet-il également d'obtenir des fichiers dans des sous-répertoires ? Si oui, comment ferais-je pour que ce ne soit pas le cas ?

    trouver /home/greg/logs -type f -mtime +5 -exec rm {} ;

    Répondre
  10. Avatar pour Suraj SalunkheSourate Salunkhe

    Je cherchais une telle commande. Très utile. Et merci pour le partage du script, Vivian.

    Répondre

Ajoutez votre commentaire Annuler la réponse

Votre adresse email n'apparaitra pas. Les champs obligatoires sont marqués *

Pied de page Logo Logo de texte de pied de page

Pied de page

À Propos

Bonjour et bienvenue sur TechLila, le célèbre blog technologique où vous pouvez trouver des articles ingénieux pour maîtriser les bases et au-delà.

Chez TechLila, notre objectif principal est de fournir des informations uniques, telles que des trucs et astuces de qualité, des tutoriels, des guides pratiques sur Windows, Macintosh, Linux, Android, iPhone, Sécurité et quelques sous-thèmes divers tels que des critiques.

Liens

  • À Propos
  • Contactez-Nous
  • Avis de non-responsabilité
  • Vie privée
  • Mentions Legales

Suivez la météo en direct

Thème personnalisé utilisant Genesis Framework

Hébergement cloud par Cloudways

Langues

en English
bg Българскиzh-CN 简体中文nl Nederlandsen Englishtl Filipinofr Françaisde Deutschid Bahasa Indonesiait Italianoja 日本語pl Polskipt Portuguêsro Românăru Русскийsr Српски језикes Españolsv Svenskatr Türkçeuk Українськаvi Tiếng Việt

© Droits d'auteur 2012-2022 TechLila. Tous les droits sont réservés.