131 votes

Comment supprimer tous les fichiers d'un répertoire sauf certains ?

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 ?

146voto

sparkie Points 2200

A rm tout sauf u,p dans bash, tapez simplement :

rm !(u|p)

Pour cela, l'option suivante doit être définie :

shopt -s extglob

Voir plus : glob - Wiki de Greg

111voto

diegogs Points 624

Ce que je fais dans ces cas-là, c'est de taper

rm *

Puis j'appuie sur Ctrl + X , a étendre `` dans tous les noms de fichiers visibles.

Ensuite, je peux simplement retirer de la liste les deux fichiers que je souhaite conserver et enfin exécuter la ligne de commande.

81voto

Edu Points 1053

Vous pouvez utiliser find

find . ! -name u ! -name p -maxdepth 1 -type f -delete
  • ! nie l'expression suivante
  • -name spécifie un nom de fichier
  • -maxdepth 1 fera en sorte que find ne traite que le répertoire spécifié ( find parcourt par défaut les répertoires)
  • -type f ne traitera que les fichiers (et pas par exemple les répertoires)
  • -delete supprimera les fichiers

Vous pouvez ensuite ajuster les conditions en regardant l'onglet page de manuel de find

更新情報

  • Gardez à l'esprit que l'ordre des éléments des expressions est important (voir la documentation).
  • Testez d'abord votre commande en utilisant -print au lieu de -delete

    find . ! -name u ! -name p -maxdepth 1 -type f -print

44voto

raganwald Points 2085

Simple :

mv les fichiers que vous voulez dans un répertoire supérieur, rm le répertoire et ensuite mv les récupérer.

16voto

CodeClimber Points 1560

Un peu similaire à cette réponse mais aucune option spéciale n'est nécessaire, pour autant que je sache, ce qui suit est une fonctionnalité "ancienne" supportée par tout /bin/sh (vaguement) ressemblant à Shell (par exemple bash, zsh, ksh, etc.)

rm [^up]

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X