• # find

    Posté par  (site web personnel) . Évalué à 8.

    find /chemin/de/tes/fichiers -name "*.extension_que_tu_veux" -ctime +90 -exec rm -f {} \;

    Explication :
    - find + chemin : utilitaire te permettant de faire des recherches de fichier dans le chemin spécifié
    - -name "*.extension" : ne faire une recherche que sur les fichiers du type spécifié
    - -ctime +n : nombre de jour de ton fichier
    - -exec : exécuter sur chacun des fichiers trouvés la commande en paramètre et substituer "{}" par le nom du fichier.

    Je te recommande de passer tout d'abord la commande suivante :
    find /chemin/de/tes/fichiers -name "*.extension_que_tu_veux" -ctime +90

    De vérifier que ça correspond à ta demande et après seulement lancer la première. Si tu veux éventuellement confirmer la suppression de chaque fichier, tu peux aussi remplacer "exec" par "ok" :
    find /chemin/de/tes/fichiers -name "*.extension_que_tu_veux" -ctime +90 -ok rm -f {} \;

    Bonne journée.
    • [^] # Re: find

      Posté par  . Évalué à 2.

      -ctime +90

      Je pense que tu devrais utiliser plutôt -mtime +90, à savoir le temps depuis lequel le fichier n'a pas été modifié, plutôt que le temps depuis lequel le statut du fichier n'a pas été modifié.
      Attention, le résultat des 2 options n'est pas le même, tu peux le vérifier facilement sur tes fichiers.

      Extrait du "man" de "find" :
      -ctime n : dernière modification du statut du fichier il y a n*24 heures.
      -mtime n : fichier dont les données ont été modifiées il y a n*24 heures.
      • [^] # Re: find

        Posté par  . Évalué à 1.

        C'est bien
        c'est ce qu'il me faut
        mais je fais qu'oi avec ça.....!

        Sa fait 3 mois que je suis sur linux, alors les commandes shell je ne les connais pas.

        Je pense qu'avec ça il faut faire une fichier bash.

        @+
        Stef
        • [^] # Re: find

          Posté par  . Évalué à 2.

          Je précise que "find" est une commande externe, et n'est pas une commande intégrée à bash. Je ne pense pas que tu aies besoin de mettre cette commande dans un fichier.
          Si tu veux la faire exécuter automatiquement à intervalle régulier, tu peux la mettre directement dans la crontab. On édite la crontab avec "crontab -e" (on se retrouve par défaut sous "vi", attention ce n'est pas facile à utiliser si on débute). Tu peux aussi créer un fichier au format crontab, que tu soumets ensuite à cron avec crontab fichier (fais man crontab pour voir les possibilités).
          Pour la mettre dans un fichier, tu crées par exemple le fichier "purge.sh", dans lequel tu écris la commande find, et ensuite tu rends le fichier exécutable avec chmod +x purge.sh.

          Pour apprendre les commandes disponibles sous Linux, regarde des didacticiels sur le Net, il y en a plein, Google t'aidera à trouver.

Suivre le flux des commentaires

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