GNU/Linux >> Tutoriels Linux >  >> Linux

Script bash pour supprimer tous les fichiers sauf N lorsqu'ils sont triés par ordre alphabétique

La ligne suivante devrait faire l'affaire.

ls -F world*.zip | head -n -5 | xargs -r rm
  • ls -F :Lister les fichiers par ordre alphabétique
  • head -n -5  :Filtrer toutes les lignes sauf les 5 dernières
  • xargs -r rm :supprimer chaque fichier donné. -r :ne lancez pas rm si l'entrée est vide

Je ne peux pas le tester pour le moment car je n'ai pas de machine Linux, mais je pense que ça devrait l'être :

rm `ls -A | head -5`

Que diriez-vous de ceci :

find /your/directory -name 'world*.zip' -mtime +5 | xargs rm

Testez-le avant. Cela devrait supprimer tous les world*.zip fichiers de plus de 5 jours. Donc une logique différente de la vôtre.


Linux
  1. Dans Bash, quand créer un alias, quand créer un script et quand écrire une fonction ?

  2. Obtenir tous les fichiers sauf les fichiers du tableau - Bash ?

  3. Comment compresser tous les fichiers dans tous les sous-répertoires de bash

  4. Comment supprimer tous les fichiers d'un dossier, mais pas supprimer le dossier à l'aide des bibliothèques standard NIX ?

  5. Transférer des fichiers en utilisant lftp dans un script bash

Utilisez ce script Bash utile pour observer les étoiles

Supprimer les fichiers correspondants dans tous les sous-répertoires

Quel est le problème avec mon script bash pour conserver les x derniers fichiers et supprimer le reste ?

Script bash pour supprimer les fichiers de plus de x jours avec des sous-répertoires

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