Primeiro uma nota
Em sistemas de arquivos unix você não tem informações sobre o tempo de criação de um arquivo. O que é frequentemente chamado de ctime é o status de alteração de status de um arquivo. Isso pode ser alterado por renomeação de arquivos ou alterações de permissão.
Veja este link para obter mais informações.
Portanto, esteja avisado que a seguinte solução pode estar falhando.
Solução com a ajuda de awk
find
não tem operador para selecionar uma data especial. Então o truque é
para criar uma saída com o dia do mês e o nome do arquivo e usando
um separador que não faz parte dos nomes de arquivos.
Eu assumo que #
é um possível separador de caracteres.
find . -mtime +30 -printf "%Cd#%p\n"
Em uma segunda etapa, você pode filtrar os arquivos indesejados.
find . -mtime +30 -printf '%Cd#%p\n' |awk -F'#' '$1 !~ /^01/{print $2;}'
Solução com a ajuda de grep
e cut
Fazendo o mesmo truque acima.
find . -mtime +30 -printf '%Cd#%p\n' |grep -v '^01' |cut -d '#' -f 2