Bonjour, Un tout grand merci, j'ai passé quelque heures a découvrir le zsh et l'ai maintenant sur un autre ordi.
-- Benoit Le 12 juin 2018 à 00:15, Marc Chantreux <m...@unistra.fr> a écrit : > salut, > > On Mon, Jun 11, 2018 at 10:55:23PM +0200, Benoit B wrote: >> Comment fait-on pour supprimer tout (rm -fr *) sauf une liste de fichiers ? > > si tu utilises zsh avec l'option extendedglob, tu peux mettre des motifs > d'exclusion (~) ou utiliser un motif inverse (^) > > * # tous les fichiers > *~*(jp(e|)g|png|bmp) # tous sauf les fichier jpeg jpg png bpm > *~*.(#i)(jp(e|)g|png|bmp) # idem mais key insensitive > > les exclusions sont chainables > > bar*~*foo?*.*~*.txt > > sont tous les fichiers qui commencent par bar, qui contiennent foo et au > moins un symbole dans la base et qui ne sont pas d'extension txt. > > tu peux aussi utiliser l'exclusion > > mkdir old > mv ^old old # déplace tous les fichiers et repertoires autres que > # old dans old > > tu peux aussi écrire un filtre maison pour avoir une exculsion à la > mimine: soit ~/protect ta liste des fichiers a proteger: > > rm *(e:'! grep -qxF $REPLY ~/protect':) > > et même écrire une fonction filtre réutilisable: > > but_protected () ! grep -qxF $REPLY ~/protect > rm *(+but_protected) > > evidement ca n'est qu'un exemple parceque du coup il faudrait plutot > faire un ls dans un fichier temporaire et faire cracher a grep la > difference entre ce fichier et protected mais je voulais un cas simple. > > au passage je suis en train de collecter (c'est tres embroyonnaire) > plein de notes sur le scripting zsh: > > https://github.com/eiro/zsh-programming-guide/blob/master/intro.md > > a+ > marc > > > >