Espero que não precisemos nos preocupar se temos uma única pasta ou várias pastas. se removermos os arquivos com o tempo modificado.
Basta verificar o armazenamento e remover os 10 arquivos mais antigos da pasta
if [ $CurrentStorage -ge $StorageThreshold ];
then
find $RootFolder -type f -printf '%T+ %p\n' | sort | head -n 10 | awk '{print $NF}' | xargs rm -f
else
echo "Storage threshold not yet reached."
fi
-
-type f -printf '%T+ %p\n'
imprime os arquivos com o último registro de data e hora modificado. -
sort
para obter o arquivo mais antigo no topo. -
head -n 10
para obter 10 arquivos mais antigos. -
awk '{print $NF}'
para extrair o caminho do arquivo. -
xargs rm -f
remove os arquivos que são extraídos.
Para MAC :
find $RootFolder -type f -print0 | xargs -0 ls -ltr | head -n 10 | awk '{print $NF}' | xargs rm -f
E uma pasta vazia dificilmente ocuparia espaço de 4Kb. Se você quiser remover todas as pastas vazias, exceto as mais recentes, inclua o código abaixo.
find $RootFolder -type d -empty -printf '%T+ %p\n' | sort | head -n -1 | xargs rm -rf
Ou
ls -lt $RootFolder/* | awk -F ":" '/total 0/{print last}{last=$1}' | tail -n +2 | xargs rm -rf
- Ele removerá todas as pastas vazias, exceto as mais recentes.