Tue, 24 May 2016 12:08:20 +0200
Hugues MORIN <mor...@gmail.com> é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 <jean-m...@6jf.be>

Attachment: pgpnJ22LmAxXR.pgp
Description: PGP signature

Répondre à