GNU/Linux >> Tutoriels Linux >  >> Linux

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

Vers rm tous sauf u,p dans bash tapez simplement :

rm !(u|p)

Cela nécessite que l'option suivante soit définie :

shopt -s extglob

Voir plus :glob - Wiki de Greg


Ce que je fais dans ces cas, c'est taper

rm *

Ensuite, j'appuie sur Ctrl +X ,* pour se développer * dans tous les noms de fichiers visibles.

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


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 rechercher uniquement le répertoire spécifié (find par défaut parcourt les répertoires)
  • -type f ne traitera que les fichiers (et pas par exemple les répertoires)
  • -delete supprimera les fichiers

Vous pouvez ensuite régler les conditions en consultant la page de manuel de find

Mettre à jour

  • 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
    

Linux
  1. Supprimer les fichiers et les répertoires par leurs noms. Aucun fichier ou répertoire de ce nom?

  2. Utilisez Rechercher pour trouver certains répertoires et supprimer tous les fichiers qu'il contient sauf un répertoire ?

  3. Comment rechercher tous les fichiers avec une taille de fichier de zéro (0) octet dans un répertoire de manière récursive

  4. Comment trouver tous les fichiers épars sous Linux

  5. Comment trouver tous les fichiers se terminant par .rb avec Linux ?

Comment compter les fichiers dans le répertoire sous Linux

Shell - Comment trouver le répertoire d'une commande ?

Comment compter le nombre de fichiers dans chaque répertoire ?

Comment trouver tous les fichiers de zéro octet dans le répertoire

Supprimer tous les fichiers aléatoires sauf 1000 dans un répertoire

Comment puis-je supprimer tous les fichiers d'un répertoire lorsqu'il signale une liste d'arguments trop longue