[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Supprimer le contenu d'un repertoire SAUF un fichier particulier



Bonsoir,

On 24/05/2016 12:08, Hugues MORIN wrote:

> 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?

Sauf erreur bien sûr, je pense que la commande commande ci-dessous fait
exactement ce qui est demandé, sachant tout de même que je suppose ici
que le fichier index.php est à la racine du répertoire
/var/www/monsite/cache/ (ce n'est pas dit explicitement dans le message
mais j'imagine que c'est bien le cas).

    find /var/www/monsite/cache/ -mindepth 1 '(' -type d -prune -exec rm -r '{}' '+' ')' -o '(' ! -name 'index.php' -exec rm '{}' '+' ')'

Bon, dans la vraie vie jamais je ne m'amuse à pondre une commande find
comme ça. Dans la vraie vie, je copie index.php dans /tmp/, je fais un
« rm -r » directement de tout le répertoire cache/, puis j'en recrée un
nouveau avec mkdir (éventuellement j'ai noté avant les droits du
répertoire pour les remettre comme ils étaient initialement) puis je
remets le fichier index.php qui se trouve dans /tmp à la racine du
répertoire cache/.

-- 
François Lafont


Reply to: