Quero excluir arquivos com mais de 30 dias em um diretório, mas não em diretórios abaixo daquele em que estou.
Responder1
Para listar os arquivos antes de excluí-los:
find . -maxdepth 1 -mtime +30 -type f -ls
Para excluir os arquivos:
find . -maxdepth 1 -mtime +30 -type f -exec rm {} +
com
.
especificando o diretório atual-maxdepth 1
descer no máximo 1 nível de diretórios-mtime +30
apenas arquivos modificados pela última vez > 30 dias-type f
apenas arquivos normais
Responder2
O shell zsh temrecursos especiais de expansão curingaisso ajudaria.
liste arquivos com mais de 30 dias no diretório atual:
ls -d -- *(.m+30)
remova arquivos com mais de 30 dias no diretório atual:
rm -- *(.m+30)
A sintaxe zsh *(.m+30)
é um curinga que significa:
*
--qualquer nome de arquivo( ... )
- com um qualificador de....
-- um arquivo normal (não um diretório, etc)m+30
- o tempo de modificação é superior a 30 dias atrás