Com esse formato de data, você pode usar a sequência de caracteres em awk
, como:
files=( $(ls | awk -v d=$(date -d '4 months ago' +%Y%m%d_999.pdf) '$1<d {print;}') )
tar cvfz backup.tar.gz "${files[@]}"
O programa awk
lê as linhas de entrada e aplica suas regras a elas. Neste caso, ele primeiro é invocado com a variável d
set como a data de recorte expandida em um nome de arquivo. Então, para cada linha compara a primeira palavra ( $1
) com a data de corte ( d
) com relação à ordem alfabética, e onde a entrada é antes do clipe, ela imprime a linha (caso contrário, não). p>
Para recortar mês, altere %d
para 00
para excluir o mês de quatro meses atrás ou 99
para incluir o mês de quatro meses atrás.