Uso de disco em outro sistema de arquivos

0

Eu tenho um diretório na minha partição ext4 com muitos arquivos pequenos. Como posso descobrir quanto espaço eles usariam se eu copiá-los para um sistema de arquivos com outro tamanho de cluster (sem copiá-los)? Como um FAT16 com tamanho de cluster de 32 KB.

    
por 4ww 19.10.2014 / 20:30

2 respostas

0

Aqui está um script bash / awk para isso:

#!/bin/bash
find . -type f -printf '%s\n' | awk '
    function ceil(number) {
        if (number == int(number)) {
            return (number);
        }
        return int(number) + 1;
    }

    function ceilWithUnit(number, unit) {
        return ceil(number / unit) * unit;
    }

    BEGIN {
        blockSize = 32 * 1024;
        fileSizeSum = 0;
        diskUsage = 0;
    }
    {
        diskUsage += ceilWithUnit($0, blockSize);
        fileSizeSum += $0;
    }
    END {
        printf("File count: %u\n", NR);
        printf("Average size: %.2f KB\n", fileSizeSum / NR / 1024);
        printf("Disk usage with %d bytes blocks: %.2f MB\n", blockSize, diskUsage / 1024 / 1024);
    }
'
    
por 19.10.2014 / 22:03
1

Eu não tenho idéia se existe uma ferramenta específica para isso, mas se eu realmente quiser descobrir, eu faria algo como (em um script / programa, é claro): contar os arquivos e multiplicar que pelo tamanho do cluster. É claro que eu precisaria verificar o "intervalo" deles (quero dizer, ver o tamanho deles e verificar se seriam necessários 4, 8, 32 ou 64 KB em cluster).

É apenas uma ideia, eu posso muito bem estar errado. Mas, a menos que outra pessoa conheça um programa que faça isso por você, você poderia pelo menos trabalhar com bastante facilidade em uma estimativa.

    
por 19.10.2014 / 20:50