print apparent sizes, rather than disk usage; although the
apparent size is usually smaller, it may be larger due to holes
in (`sparse') files, internal fragmentation, indirect blocks,
and the like
The only thing that I know is that a file lies in a hole number of blocks. If blocks are 32768 bytes in size and the file length is 33000 bytes, it will occupy 32768 * 2 bytes.
The files in /hdbxp/sma_ may very well be in a high state of fragmentation. And the copy process defragmentated them. But I do not see how this can reduce the occupied space.
If I use the --all option of du I'll be able to count the files and compare. One detail I forgot to mention: the source file system is FAT32 and the destination one is NTFS.
EDIT: I am seeing directories occupy 16384 bytes in the FAT32 partition and only 4096 in the NTFS partition. If the difference in size between source and destination is due only to this, then there would have to be 6103 directories in the source (and in the destination). But the number of files plus the number of directories is 6995. Absurd.
Oh, oh, oh ... There is another consideration. Block size. See this:
semoi@darkstar:~$ du --apparent-size -hs /hdbxp/sma_/
semoi@darkstar:~$ du --apparent-size -hs /hdaxp/sma_/
Now the difference is much smaller, and can be accounted for by the difference in the directories sizes (16384 vs 4096). The large difference yielded by du without the --apparent-size option means that the block size is much less in the NTFS partition (/hdaxp).