L'un des plus puissants moyens de faire ce genre de truc est en utilisant find + grep + xargs:
DONT_REMOVE='a|b|c0|d|Z|foo'
find . -type d -print | egrep -v "^\.$DONT_REMOVE\$" | xargs rm -r
Le seul truc fait que le modèle ici correspond uniquement à ceux que vous ne voulez pas supprimer . Le motif ci-dessus correspond uniquement aux fichiers du répertoire en cours. Vous pouvez le rendre plus ou moins permissive, par exemple:
IF_PATH_IS_IMMEDIATE_SUBDIR="^\./($DONT_REMOVE)$"
IF_PATH_ENDS_IN="/($DONT_REMOVE)$"
IF_PATH_CONTAINS="/($DONT_REMOVE)(/.*)?$"
ensuite passer l'un de ces derniers dans votre egrep, e.g:
find . -type d -print | egrep -v "$IF_PATH_ENDS_IN" | xargs rm -r
Pour inverser le choix juste enlever la -v de la egrep
ah (c.-à supprimer tous ces articles.)! C'est tout! En fait, je veux aussi supprimer des fichiers. Merci beaucoup! – cppb