rm "$(ls -1t fruits_*.gz | tail -1)"
Os nomes acima dos arquivos, um por linha, classificados por idade ( ls -1t
) e deleta ( rm
) o último, ou seja, o mais antigo, um ( tail -1
).
(O acima não funcionaria para todos os arquivos, mas como seus arquivos são sensivelmente nomeados, tudo bem.)
Outra possibilidade, conforme o comentário do @ Anthon, é excluir os backups que são mais antigos que, digamos, 30 dias. Nesse caso:
find . -maxdepth 1 -mtime +30 -name 'fruits_*.gz' -delete
O arquivo acima exclui os arquivos encontrados no diretório atual ( .
), mas não mais ( -maxdepth 1
) com a última modificação de mais de 30 dias atrás ( -mtime +30
) e um nome que corresponde ao padrão fruit_*.gz
.
Ambos os comandos acima assumem que o diretório de trabalho atual é aquele com os arquivos de backup. Você pode executá-los a partir de outro diretório com pequenas alterações.