GNU/Linux >> Tutoriales Linux >  >> Linux

Bash script para eliminar todos los archivos excepto N cuando se ordenan alfabéticamente

La siguiente línea debería funcionar.

ls -F world*.zip | head -n -5 | xargs -r rm
  • ls -F :Enumere los archivos alfabéticamente
  • head -n -5 :filtrar todas las líneas excepto las últimas 5
  • xargs -r rm :eliminar cada archivo dado. -r :no ejecutar rm si la entrada está vacía

No puedo probarlo ahora porque no tengo una máquina con Linux, pero creo que debería ser:

rm `ls -A | head -5`

¿Qué tal esto:

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

Pruébalo antes. Esto debería eliminar todos los world*.zip archivos de más de 5 días. Así que una lógica diferente a la tuya.


Linux
  1. Obtener todos los archivos excepto los archivos en matriz:¿Bash?

  2. Eliminar el repositorio de Git, pero conservar todos los archivos

  3. Elimine todos los archivos excepto los 3 más nuevos en bash script

  4. Script Bash para eliminar archivos de más de x días con subdirectorios

  5. Eliminar todos menos 1000 archivos aleatorios en un directorio

Use este útil script de Bash cuando observe las estrellas

Eliminar archivos coincidentes en todos los subdirectorios

¿Qué tiene de malo mi secuencia de comandos bash para mantener los últimos archivos x y eliminar el resto?

bash:elimina todos los directorios (y contenidos) pero no los archivos en pwd

Permitir que todos los usuarios creen archivos en un directorio, pero solo el propietario puede eliminarlos

¿Cómo puedo eliminar todos los archivos de un directorio cuando informa que la lista de argumentos es demasiado larga?