Suppression fichiers ubuntu

Résolu
MarcB -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Comment effacer dans un répertoire et ses sous répertoires les fichiers qui ont la même extension .log par exemple
Merci

Configuration: Macintosh / Firefox 88.0

2 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Bonjour,

    Il suffit de lister les fichiers situés dans ce dossier avec la commande
    find
    , filtrer les fichiers concernés avec
    grep
    et réinjecter le tout dans la commande
    rm
    à l'aide de
    xargs
    . Avant de supprimer avec
    rm
    de lancer juste le début de la commande, ce qui permettra de vérifier que tu t'apprêtes à supprimer ce que tu penses :

    cd /le/bon/dossier
    find | grep "\.log$"


    Si c'est bon :

    find | grep "\.log$" | xargs rm -f


    Pour aller plus loin : toutes les commandes sous linux sont documentées dans leur manuel. Par exemple pour comprendre comment fonctionne la commande
    grep
    , il suffit de taper dans un terminal la commande
    man grep
    . Le manuel permet de comprendre quelles options existent, ce qu'elles signifient, à quoi correspondent les paramètres et comment les définir. En l'occurrence, la commande
    grep
    permet de conserver uniquement les lignes qui satisfont une expression rationnelle (= expression régulière). En l'occurrence, l'expression rationnelle
    "\.log$"
    signifie "le caractère '.', suivi des caractères log, et $ signifie que le motif doit apparaître en fin de ligne.

    Bonne chance
    0
  2. MarcB
     
    Merci mamiemando,
    J'ai continué à chercher et j'ai trouvé cette solution qui marche aussi :

    find ./Documents -type f -name "*.log" -exec rm -f {} "+"

    MarcB
    0
    1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
       
      Bonjour Marc,

      Oui tout à fait ! Personnellement je suis plus de l'école
      find ... | grep ... | xargs ...
      car
      grep
      laisse la possibilité de définir des filtres plus évolués (et aussi parce que je trouve le
      {}
      de
      find
      un peu abscons). Pour ton cas particulier, n'utiliser que
      find
      est parfaitement correcte.

      Merci pour ton retour et bonne continuation :-)
      0