Commande FIND -exec rm

pcsystemd Messages postés 734 Statut Membre -  
pcsystemd Messages postés 734 Statut Membre -
Bonjour,

Je souhaite regrouper la suppression des fichiers suivants

v03_access.log.5*
v03_access.log.3*
v03_access.log.4*

Mais uniquement v03_access.log.51,52,etc.. mais pas le v03_access.log.5,4,3

Actuellement je fait fichier par fichier et de plus cela me supprime également les fichiers v03_access.log.5 et v03_access.log.4,etc..

find /  -name  'v03_access.log.4*' -exec rm -f {} \;
find / -name 'v03_access.log.3*' -exec rm -f {} \;
find / -name 'v03_access.log.5*' -exec rm -f {} \;


Est ce possible de faire cela en une seule commande?

Merci

L'accès au savoir est la première liberté que chaque homme devrait avoir.

2 réponses

  1. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    Bonjour,

    A essayer, le OR
    find / \( -name 'v03_access.log.3*' -o -name 'v03_access.log.4*' -o -name 'v03_access.log.5*' \)


    ou un regex
    find / -iregex "\(v03_access.log.3*\|v03_access.log.4*\|v03_access.log.5*\)" 


    Et sur le OR, pour ne pas prendre 3,4, et 5 seuls, utiliser 2 caractères joker ? (1 seul caractère) et * (0 à n caractères),
    'v03_access.log.3?*' le ? oblige à avoir un autre caractère derrière le 3, le * permettant n'importe quelle longueur

    1
  2. pcsystemd Messages postés 734 Statut Membre 23
     
    Merci.

    Avec le OR cela fonctionne mais pas avec la Regex mais c'est peut être dû à la version de l'OS qui est ancienne.
    0