msoliver
(usa Debian)
Enviado em 23/01/2023 - 18:40h
gustavo777 escreveu:
Boa tarde galera!
Estou imergindo no mundo Linux e até o momento estou curtindo o que o OS oferece. Cada dia busco aprender mais sobre esse sistema que está presente em tudo atualmente (principalmente na minha área de interesse, DevOps). Dito isso, estou querendo criar uma rotina que exclua todos os arquivos de uma determinada extensão (e apenas desta extensão), deixando apenas os 5 arquivos mais recentes criados da determinada extensão. Ou seja, esta rotina ignoraria diretórios e arquivos de outra extensão. Com o pouco conhecimento que tenho, gerei o seguinte código (falho):
#!/bin/bash
cd testfolder ;
rm $(find -name '*.txt' -exec ls -t | awk 'NR>5')
Poderiam, por favor, me ajudar a fazer este código funcional?
Boa tarde Gustavo, segue sugestão:
cd testfolder ;
#LISTA, OS ARQS, QUE NÃO SERÃO REMOVIDOS
ls -1t --time-style="+%s" *.txt|awk 'NR<=5 {cmd="ls " $0;system(cmd)}'
#LISTA, ARQS QUE SERÃO REMOVIDOS
ls -1t --time-style="+%s" *.txt|awk 'NR>5 {cmd="ls " $0;system(cmd)}'
--------------------------------------------------------
#REMOVE ARQS, COM CONFIRMAÇãO
ls -1t --time-style="+%s" *.txt|awk 'NR>5 {cmd="rm -i " $0;system(cmd)}'
É isso....
----------------------------------------------------------------------------------------------------------------
Se, te ajudei, retribua.....
É só marcar a MELHOR RESPOSTA . . . :)
______________________________________________________________________
Importante:
lynx --dump
https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
Nota de esclarecimento:
O comando:
ACIMA, faz parte da minha assinatura.
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________