Sparse Files — Commands Overview
Published in
1 min readMar 31, 2010
I was just checking which commands are supporting sparse files. I post hereafter a short overview of what I found out (working on Linux).
- Create a sparse file of 20 GiB:
dd if=/dev/zero of=foo bs=1 count=1 seek=20G
- Check that a file is sparse:
ls -alsh
Compare the first versus second size column (the first one is the space taken on disk). - Copy a sparse file:
cp foo bar
Copy already detects and handles correctly sparse files. - Make a non-sparse file sparse (works only if it contains blocks filled with zeros):
cp --sparse=always foo bar
- Expand a sparse file to a non-sparse one:
cp --sparse=never foo bar
- Copy remotely a sparse file: scp does not support sparse files, it will expand them to non-sparse ones. Rsync does support them. Just use the
-S
or--sparse
option. Example:
rsync -vS foo root@someserver:/some/path/