Tue, 24 May 2016 12:08:20 +0200 Hugues MORIN <[email protected]> écrivait :
> Bonjour a tous
>
>
>
> J'ai besoin de supprimer tout le contenu d'un repertoire SAUF le fichier
> index.php
>
> Il me semblai que cela aurai du le faire:
> find /var/www/monsite/cache ! -name 'index.php' -exec rm -rf {} \;
>
> mais en pratique cela supprime aussi le repertoire "cache"
>
> La syntaxe me semble correcte mais comment faire pour ecarter le dossier
> "cache" de la suppression?
>
>
> Cette solution n'est peut etre pas la bonne pour ce que je veux faire.
> En avez-vous une autre qui fonctionne?
Tu peux aussi jouer avec les négations dans les regexp.
cd /var/www/monsite/cache; rm -fr !(index.php)
Attention, cela nécessite d'activer extglob.
Voilà comment vérifier, activer, désactiver extglob :
shopt extglob
shopt -s extglob
shopt -u extglob
Si tu comprends l'anglais, une chouette page :
http://stackoverflow.com/questions/216995/how-can-i-use-inverse-or-negative-wildcards-when-pattern-matching-in-a-unix-linu
>
>
> Merci
>
> Cordialement
> Hugues
Jean-Marc <[email protected]>
pgpnJ22LmAxXR.pgp
Description: PGP signature

