GNU/Linux >> Tutoriels Linux >  >> Linux

Supprimer tous les fichiers d'un dossier sauf le dernier (le plus récent) 20 ?

Cette question a déjà des réponses ici :supprimer les fichiers les plus anciens

(8 réponses)
Fermé il y a 5 ans.

Je souhaite supprimer tous les fichiers de différents répertoires et ne conserver que les 20 derniers fichiers.
est-ce la bonne commande ?

ls -t1 /mnt/dwh/ftp/dwh_ftp_cbs/ARLOGS/ | tail -n +22 | xargs rm -f

Réponse acceptée :

Avec zsh et glob-qualificatifs :

print -rl -- *(D.Om[1,-21])

listera tous les fichiers normaux à l'exception des vingt derniers (les plus récemment modifiés).
D sélectionne les fichiers cachés, . sélectionne uniquement les fichiers normaux, Om signifie un tri inversé par mtime (donc le plus ancien en premier) et [1,-21] sélectionne du premier au 21 jusqu'au dernier.
Si vous êtes satisfait du résultat, remplacez print -rl avec rm :

rm -- *(D.Om[1,-21])

Si vous avez un grand nombre de fichiers, vous devrez peut-être utiliser zargs pour éviter une liste d'arguments trop longue :

autoload zargs
zargs ./*(D.Om[1,-21]) -- rm

Linux
  1. Sed :Supprimer toutes les occurrences d'une chaîne, sauf la première ?

  2. Comment supprimer tous les fichiers avec une extension particulière dans un dossier particulier ?

  3. Supprimer les anciens fichiers journaux à l'exception du dernier (trié par ordre alphanumérique) ?

  4. Remplacer toutes les nouvelles lignes par un espace sauf la dernière ?

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

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

Comment trouver tous les fichiers épars sous Linux

Comment copier les 10 fichiers les plus récents d'un répertoire à un autre ?

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

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

Supprimer tout /var/log ?