Tamanhos de arquivos do Windows

2

Não tenho certeza se isso se aplica ao Unix ou a qualquer outro SO, exceto o Windows, daí o título. Quando você olha para as propriedades de um arquivo no Windows, você vê um tamanho e um tamanho no disco. Alguém poderia explicar a diferença entre os dois?

    
por Sachin Kainth 12.07.2013 / 22:53

1 resposta

9

O "tamanho no disco" leva em consideração qualquer compactação que possa ter sido aplicada ao arquivo e o espaço "folgado" no final da última unidade de alocação em que o arquivo foi gravado.

O NTFS permite a compactação / descompactação transparente de arquivos. Quando você compacta um arquivo, seu tamanho permanece o mesmo (ou seja, o tamanho dos dados no arquivo), mas a área ocupada pelo disco provavelmente será menor porque o driver NTFS compactará os dados do arquivo de maneira transparente à medida que eles são gravados no disco .

Sistemas de arquivos armazenam arquivos em uma unidade de alocação atômica - um "cluster" no caso de NTFS e (ex) FAT. O tamanho do cluster para um determinado volume pode variar (de 4K a 64K para NTFS, outros para outros sistemas de arquivos). Um arquivo menor que um único cluster será armazenado em um único cluster e, como tal, ocupará pelo menos o espaço em disco de um cluster. É improvável que o tamanho do arquivo seja um múltiplo exato do tamanho do cluster, portanto, o último cluster alocado para o arquivo conterá uma combinação de dados do arquivo e dados "folgados" ocupando a parte não usada restante no último cluster. O "tamanho no disco" também conta este espaço "slack".

É importante notar que, quando se trata de NTFS, arquivos muito pequenos podem ser armazenados na entrada da tabela de arquivos mestre (MFT) para esse arquivo (arquivos em que o nome do arquivo, dados do arquivo e propriedades do arquivo combinados são 1024 bytes ou Menos). O arquivo ainda mostrará um tamanho no disco do tamanho do cluster para o volume NTFS.

Arquivos esparsos são um mecanismo por meio do qual os arquivos aparecem muito grandes, mas contêm grandes áreas de zeros com poucas execuções de dados. O NTFS suporta arquivos esparsos e reportará o tamanho no disco conforme a área real usada pelos dados é executada, excluindo os zeros.

Editar:

Como syneticon-dj aponta, essa questão certamente se aplica também a outros sistemas operacionais. A versão GNU do comando du possui um argumento --apparent-size que mostrará o tamanho dos dados do arquivo, em vez do tamanho do disco (que é o padrão para du ). Há momentos em que cada tamanho é relevante e é uma boa ideia conhecer as diferenças.

    
por 12.07.2013 / 22:57

Tags