Il 16/01/20 02:21, Gordon Messmer ha scritto: > On 1/15/20 8:18 AM, Alessandro Baggi wrote: >> Then I sync src/ to dest/ using "rsync -avS src/ dest/", all ok but >> when I run "du -h dest/testfile" I get 0 and if I run "du -b >> dest/testfile" I get the correct size in bytes. > > > That's not a bug, that's what sparse files are. > > In POSIX systems, it's possible to treat a regular file like memory, > and one of the things you might do with such a feature is use a file > to keep track of the last time a user logged in. The simplest way to > so that is to save the time value at the offset of the user's UID. My > uid is 556600005, so if the file weren't sparse, that one entry would > create an enormous file, but with sparse files, the system only needs > to allocate one block to store that value. If a process reads that > file, it will get all zeros from the OS until it reaches the date > stored at my uid offset. > > Applications can't tell whether a given set of zeros in a file are > actual zeros on disk, or if they're simply parts of the file that > haven't been written to, so when you tell rsync to create sparse > files, it will do its best to identify blocks that are all zeros and > simply not write to those on the destination. Thus, if you use > /dev/zero to create a file on the source and then rsync it with -S, > the destination file will use zero blocks of storage. Naturally, that > can only be true with files whose contents are null bytes, as you get > from /dev/zero. > > _______________________________________________ > CentOS mailing list > CentOS at centos.org > https://lists.centos.org/mailman/listinfo/centos Thank you for your answer. I appreciated it.