Rotina para exclusão de arquivos de uma extensão específica [RESOLVIDO]

1. Rotina para exclusão de arquivos de uma extensão específica [RESOLVIDO]

Icaro Gustavo Silva dos Santos
gustavo777

(usa Ubuntu)

Enviado em 23/01/2023 - 12:41h

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?


  


2. MELHOR RESPOSTA

Marcelo Oliver
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
______________________________________________________________________


3. Re: Rotina para exclusão de arquivos de uma extensão específica [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 23/01/2023 - 18:58h


Exclui todos os ".txt" do diretório testfolder com mais de 5 dias de criação

find /path-do-diretório/testfolder -name "*.txt" -mtime +5 -delete 


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




4. Rotina para exclusão de arquivos de uma extensão específica

Icaro Gustavo Silva dos Santos
gustavo777

(usa Ubuntu)

Enviado em 28/01/2023 - 10:00h

msoliver escreveu:

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
______________________________________________________________________


Sua resposta me ajudou a chegar onde eu queria, obrigado!



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts