GNU/Linux >> Linux Esercitazione >  >> Linux

Script Bash per eliminare tutti i file tranne N quando sono ordinati alfabeticamente

La riga seguente dovrebbe fare al caso tuo.

ls -F world*.zip | head -n -5 | xargs -r rm
  • ls -F :Elenca i file in ordine alfabetico
  • head -n -5 :Filtra tutte le righe tranne le ultime 5
  • xargs -r rm :rimuove ogni dato file. -r :non eseguire rm se l'input è vuoto

Non posso provarlo adesso perché non ho una macchina Linux, ma penso che dovrebbe essere:

rm `ls -A | head -5`

Che ne dici di questo:

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

Provalo prima. Questo dovrebbe rimuovere tutti i world*.zip file più vecchi di 5 giorni. Quindi una logica diversa da quella che hai.


Linux
  1. Come impostare i parametri quando Pipe Bash Script su Bash?

  2. Ottieni tutti i file tranne i file nell'array - Bash?

  3. Rimuovi il repository Git, ma mantieni tutti i file

  4. Elimina tutti i file tranne i 3 più recenti nello script bash

  5. Elimina i file corrispondenti in tutte le sottodirectory

Usa questo utile script Bash quando osservi le stelle

Trasferisci i file usando lftp nello script bash

Comando Conda che funziona nel prompt dei comandi ma non nello script bash

Cosa c'è di sbagliato nel mio script bash per mantenere gli ultimi file x ed eliminare il resto?

bash - rimuove tutte le directory (e i contenuti) ma non i file in pwd

Elimina tutti i file casuali tranne 1000 in una directory