Existem várias soluções. dd
como solução pode levar algum tempo, no entanto, usando buscar
dd of=mybigfile bs=1 count=0 seek=40G
é instantâneo. no entanto o espaço de 40g tomado pelo comando é não visto em df
...
Então, o melhor é provavelmente
fallocate -l 40g mybigfile
que cria instantaneamente mybigfile e o espaço é realmente reservado a partir do FS (e é visto em df
)
- editar após comentário -
Que tal um link físico
cd data
make 40g file "myfile"
depois para cada teste
cd ../test
ln ../data/myfile testfile
command to unlink testfile
Os dados e teste estão no mesmo FS (dirs diferentes para evitar erros, etc.).
O status do link físico é bastante transparente e provavelmente não será testado pelo aplicativo. A operação unlink irá remover o nome associado ao inode e então decrementará o contador de links no inode, e deve ser muito rápido (o arquivo e seus dados serão realmente liberados somente quando o contador inode desce para zero - o que não acontecerá a menos que você desvincule também data/myfile
).