Como mostrar o tamanho físico total descompactado em bytes de um arquivo ou diretório compactado pelo HFS?

2

Exemplo: o TextEdit da Apple em /Applications/TextEdit.app

Se você calcular o tamanho físico com echo "$(/usr/bin/du -k -d 0 /Applications/TextEdit.app | /usr/bin/awk '{print $1}') * 1024" | /usr/bin/bc -l , obterá (no meu caso em 10.11.6) um tamanho de 4538368 bytes .

No entanto, se você abrir a janela Informações no Finder, ele informará que o tamanho físico é muito maior: 8,6 MB no disco , quase o dobro do tamanho.

Está claro o porquê: a Apple usou a compactação HFS no TextEdit. Executar a ferramenta de terceiros afsctool (que você pode instalar com o Homebrew) produz este resultado:

/usr/local/bin/afsctool /Applications/TextEdit.app /Applications/TextEdit.app: Number of HFS+ compressed files: 693

Agora, o macOS obviamente parece conhecer o tamanho físico não compactado, como evidenciado pelo valor de tamanho no disco na janela Informações do Finder.

A minha pergunta é, se existe uma forma de leitura de linha de comandos para obter essa informação, ou seja, uma forma de mostrar:

(a) o tamanho físico não comprimido (uso do disco) de um arquivo que é compactado por HFS, ou seja, um arquivo para o qual /usr/bin/stat -f %f retorna "32" (embora seja "524320" para algum motivo no TextEdit), e

(b) o tamanho físico total não compactado (uso do disco) de um diretório ou pacote que contém arquivos compactados HFS.

Observação: somente comandos nativos do macOS devem ser usados para calcular o tamanho, enquanto não usando dados dependentes do Spotlight, por exemplo, do comando mdls , que é buggy e, às vezes, retorna (null) para a chave kMDItemPhysicalSize , além do fato de que alguns usuários desativaram totalmente o Spotlight.

    
por JayB 19.03.2017 / 16:58

1 resposta

0

Use o comando afsctool com -v flag, por exemplo:

$ afsctool -v README
README:
File is HFS+ compressed.
File size (uncompressed data fork; reported size by Mac OS 10.6+ Finder): 3046 bytes / 3 KB (kilobytes) / 3 KiB (kibibytes)
File size (compressed data fork - decmpfs xattr; reported size by Mac OS 10.0-10.5 Finder): 0 bytes / 0 KB (kilobytes) / 0 KiB (kibibytes)
File size (compressed data fork): 1427 bytes / 1 KB (kilobytes) / 1 KiB (kibibytes)
Compression savings: 53.2%
Number of extended attributes: 0
Total size of extended attribute data: 0 bytes
Approximate overhead of extended attributes: 268 bytes
Approximate total file size (compressed data fork + EA + EA overhead + file overhead): 1943 bytes / 2 KB (kilobytes) / 2 KiB (kibibytes)
    
por 10.04.2018 / 00:02