Como posso apagar metade dos arquivos em um diretório?

1

Um diretório possui arquivos com nomes que terminam de 001 a 100. Como você pode excluir 2,4,6,8 ... 100. E isso pode ser escrito como um script. Assim que o diretório se torna semana de idade, isso tem que ser executado. E depois de um mês novamente. O objetivo é excluir metade dos dados não recentes.

    
por Anvesh Kurapati 10.09.2014 / 13:04

2 respostas

3

você pode usar um bash para loop com um passo (se for bash v4)

então seria

#!/usr/bin/bash

cd /path/to/directory/

for i in 'ls *{0..100..2}'
do 
    rm $i
done

isso pode ser colocado no seu crontab para ser executado toda semana / mês

00 11 1 * * /path/to/script.sh executará no primeiro dia do mês às 11h

00 11 * * 1 /path/to/script.sh executará todas as segundas-feiras

    
por 10.09.2014 / 13:33
1

Algo como isso deve funcionar (não é possível testar agora, então teste primeiro em dados duplicados ) -

 find /path/to/directory -type f -name '*[02468].jpg' -delete

ou com rm -

 find /path/to/directory -type f -name '*[02468].jpg' -exec rm {} +
    
por 10.09.2014 / 13:35