Why does du -sl show different sizes for the source and result of a cp -rl?

5

I have used cp -rl to copy a folder. When measuring the size of the source and of the result of the copy du -sl returns slightly different sizes, even though diff confirms that their content are identical:

$ cp -rl folderA/ folderB/
$ du -sl folderA folderB
98561224 folderA
98590512 folderB
$ diff --brief -ra folderA/ folderB/
$

Both folders reside on the same hard drive, no modifications to any of them have been done between the copy and the measure. I found nothing in the documentation of du and cp which could explain the difference.

Laurent Giroud

Posted 2011-07-14T19:24:58.003

Reputation: 195

Answers

2

Just tried this myself, and I found the discrepancy in size is from the directory files. Since they are not hardlinked they are new files that get created, maybe not with the exact same metadata?

To illustrate this run the following commands:

ls -alR folderA/ | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'
ls -alR folderB/ | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'

These sizes should be identical (dir files not included). You could print the listings with the directory sizes and diff the results to find which dirs exactly are different.

Nicholi

Posted 2011-07-14T19:24:58.003

Reputation: 628

Indeed, the results are identical. – Laurent Giroud – 2011-07-14T21:10:21.427

I too found that it is the directory files that are different. But why is this? – tekumara – 2012-03-04T04:42:29.960

On linux directories are in fact files themselves, just of a special kind. I'm not truly sure of why there is a difference, but it is likely related to metadata stored by the filesystem. Your original directories may have a larger size because they used to have more files in them, but were removed(?). These removed files added some "padding" to the metadata of the dir file which isn't used anymore. So when the dir is copied there is no need to also copy this now stale data, thus the copies are smaller. P.S. this is total guesswork. If you find out, please respond though. – Nicholi – 2012-03-05T18:18:17.090