LINUX: Como calcular recursivamente o tamanho de cada subdiretório até o diretório raiz?

2

EuescreviestescriptScritnoLinux.

Agoraprecisosaberotamanhodecadasubdiretóriocomacondição-atime+${DAYS}pesquisandonodiretório$DIR.Oresultadodeveserreunidoemumarquivodetexto$FILENAME.

#!/bin/bash#DaysagotosearchDAYS="1"
#Path to directory to be searched
DIR="/media/nss/MBVOL2/TEST1/"
#Result filename Solomon
FILENAME="/media/nss/MBVOL2/TEST1/solomon2.txt"
# Process of listing these files in a result text file 
find "${DIR}" -type f -atime +${DAYS} -print > $FILENAME
    
por user62104 06.03.2014 / 13:47

2 respostas

5

Se você quiser o tamanho dos subdiretórios, use du . Isso imprimirá o tamanho dos subdiretórios recursivamente ( -h é para tamanhos legíveis por humanos):

du -h /media/nss/MBVOL2/TEST1/

Se você quiser apenas um resumo e não cada um dos resultados, use -s :

du -sh /media/nss/MBVOL2/TEST1/

Se você quiser o tamanho dos diretórios com relação à condição atime do seu script, use o seguinte:

find -type d -atime +1 -exec du -sh {} \;

Isso executará o comando após exec (e antes de \; ) e passará todos os arquivos encontrados pelo comando find . No entanto, tenha em mente que você está realmente acessando esses arquivos e diretórios, então o atime será modificado para eles.

    
por 06.03.2014 / 15:26
2

Você pode encontrar por meio de du na linha final para incluir o tamanho do arquivo. Algo como:

find "${DIR}" -type f -atime +${DAYS} -print0 | xargs -0 du -csh '{}' > $FILENAME

deve chegar perto.

    
por 06.03.2014 / 14:01