Em um sistema GNU, você poderia fazer algo como:
cd /var/log/hive &&
find . -type f -printf '%T@ %b :%pfind . -type f -printf '%T@ %b :%pcd /var/log/hive &&
find . \( -type f -name '*.wsp' -printf WSP -o -printf OTHER \) \
-printf ' %T@ %b :%pcd /var/log/hive &&
find . -type f -printf '%T@ %b :%pfind . -type f -printf '%T@ %b :%pcd /var/log/hive &&
find . \( -type f -name '*.wsp' -printf WSP -o -printf OTHER \) \
-printf ' %T@ %b :%p%pre%' |
sort -zk 1,1 -k2,2rn |
gawk -v RS='%pre%' -v ORS='%pre%' '
BEGIN {max = 10 * 1024 * 1024 * 1024} # 10 GiB
{du += 512 * $3}
du > max && $1 == "WSP" {
sub("[^:]*:", ""); print
}' | xargs -r0 echo rm -f
' |sort -zrn|gawk -vRS='%pre%' -vORS='%pre%' '{du+=512*$2};du>10*(2^30){sub("[^:]*:","");print}'|xargs -r0 echo rm -f
' |
sort -zrn |
gawk -v RS='%pre%' -v ORS='%pre%' '
BEGIN {max = 10 * 1024 * 1024 * 1024} # 10GiB; use max=10e9 for 10GB
{du += 512 * $2}
du > max {
sub("[^:]*:", ""); print
}' | xargs -r0 echo rm -f
' |
sort -zk 1,1 -k2,2rn |
gawk -v RS='%pre%' -v ORS='%pre%' '
BEGIN {max = 10 * 1024 * 1024 * 1024} # 10 GiB
{du += 512 * $3}
du > max && $1 == "WSP" {
sub("[^:]*:", ""); print
}' | xargs -r0 echo rm -f
' |sort -zrn|gawk -vRS='%pre%' -vORS='%pre%' '{du+=512*$2};du>10*(2^30){sub("[^:]*:","");print}'|xargs -r0 echo rm -f
' |
sort -zrn |
gawk -v RS='%pre%' -v ORS='%pre%' '
BEGIN {max = 10 * 1024 * 1024 * 1024} # 10GiB; use max=10e9 for 10GB
{du += 512 * $2}
du > max {
sub("[^:]*:", ""); print
}' | xargs -r0 echo rm -f
Isso é ordenar os arquivos regulares pela última modificação (do mais recente ao mais antigo), contar o uso cumulativo de disco (supondo que não haja links físicos) e excluir todos os arquivos quando passarmos do limite de 10GiB.
Observe que não leva em consideração o tamanho dos próprios arquivos de diretório. Considera apenas o uso do disco de arquivos regulares.
Remova echo
quando estiver satisfeito com o resultado.
Em uma linha:
%pre%Para excluir apenas arquivos * .wsp quando o uso cumulativo do disco de todos os arquivos comuns ultrapassar 10GiB, você desejará listar os arquivos não wsp primeiro. E, ao mesmo tempo, também podemos explicar o uso do disco de diretórios e outros arquivos não regulares que estávamos perdendo anteriormente:
%pre%