Tamanho real.
Do arquivo de destino.
A implementação mais simples é para não tentar prever isso com antecedência.Além disso, uma pequena fração é necessária como sobrecarga. Essa sobrecarga seria ainda mais complexa para prever.
O suporte para arquivos esparsos varia, dependendo do sistema de arquivos e do programa que está fazendo a cópia. Mais notavelmente, sistemas de arquivos FAT não suportam arquivos esparsos.
O GNU cp
detecta e manipula automaticamente arquivos esparsos. Não verifica o espaço antecipadamente. (Baseado na documentação do GNU coreutils 8.29)
By default, sparse SOURCE files are detected by a crude heuristic and the corresponding DEST file is made sparse as well. That is the behavior selected by
--sparse=auto
. Specify--sparse=always
to create a sparse DEST file whenever the SOURCE file contains a long enough sequence of zero bytes.
Observe que os sistemas de arquivos podem ter diferentes tamanhos de bloco. Isso pode fazer com que a quantidade de espaço usada pelo arquivo esparso aumente ou diminua!
(Escrever dados de arquivo geralmente também requer estruturas de sistema de arquivos internas que ocupam espaço próprio. Isso não é mostrado no tamanho do arquivo - nem o tamanho real nem o aparente. , você também precisa de um inode gratuito. O espaço disponível para inodes é mostrado por df -i
. E, obviamente, você precisa de algum espaço para armazenar o nome do arquivo :-); isso é geralmente mostrado no tamanho do diretório pai. Isso é discutido especificamente na questão Posso ficar sem espaço em disco criando um número muito grande de arquivos vazios? )