Je dois supprimer tous les fichiers d'un répertoire, mais exclure certains d'entre eux. Par exemple, dans un répertoire contenant les fichiers a b c ... z
Je dois tout supprimer sauf u
y p
. Y a-t-il un moyen facile de le faire ?
Réponses
Trop de publicités?Le faire sans trouver :
ls | grep -v '(u|p)' | xargs rm
(Edition : "u" et "v", comme dans d'autres endroits ici, sont utilisés comme des versions génériques de regex entières. Évidemment, vous devrez faire attention à ancrer vos regex pour éviter de faire correspondre trop de choses).
Vous allez certainement vouloir un script si vous allez faire beaucoup de cela, comme d'autres l'ont suggéré.
À l'époque des disquettes, j'avais un exécutable DOS appelé "Except" qui déplaçait temporairement les éléments du répertoire courant et exécutait une commande, de sorte que vous pouviez dire :
except \*.txt del \*.\*
pour supprimer tout sauf vos fichiers texte.
Ce serait une chose assez triviale à mettre en œuvre comme un Shell Shell et si c'est le genre de chose que vous êtes susceptible de faire plus de deux fois, cela semble être une bonne idée.