Você disse que está no AIX. Eu acho que os comandos básicos do shell farão o truque se eu não estiver errado.
find /path/to/files* -mtime +60 -exec rm {} \;
find /path/to/files -type d -exec rmdir 2>/dev/null {} \;
Estamos usando um servidor AIX para armazenar milhares e milhares de pequenos arquivos em uma estrutura de diretório aninhada. Eu estou tentando escrever um script que irá recursivamente excluir arquivos antigos e, em seguida, exclua o diretório contendo se esse foi o último arquivo no diretório.
Para fins de exemplos, digamos que qualquer arquivo com mais de 60 dias seja "antigo".
Parece simples e fácil, mas olhei em volta por um tempo e não consegui encontrar uma solução. Existe alguma combinação de find
e seus flags, talvez pipelined com rmdir
que irá realizar o acima?
Se você definir "mais antigo que" por ter um tempo de modificação de mais de 60 dias, o comando a seguir excluirá seus arquivos antigos:
find /your/dir -mtime +60 -exec rm -f {} \;
para podar diretórios vazios, você pode usar este comando:
find /your/dir -type d -exec rmdir {} \;
ele não encontra exatamente diretórios vazios, mas como o rmdir não exclui diretórios contendo arquivos, ele somente excluirá os vazios.
Tags find shell-scripting aix