web-dev-qa-db-ja.com

du-slがcp-rlのソースと結果に異なるサイズを表示するのはなぜですか?

利用した cp -rlフォルダをコピーします。ソースのサイズとコピーの結果のサイズを測定する場合du -slは、内容が同一であることをdiffが確認した場合でも、わずかに異なるサイズを返します。

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

両方のフォルダーは同じハードドライブ上にあり、コピーとメジャーの間でそれらのいずれにも変更は加えられていません。 ducpのドキュメントには、違いを説明できるものは何も見つかりませんでした。

5
Laurent Giroud

これを自分で試してみたところ、サイズの不一致はディレクトリファイルにあることがわかりました。それらはハードリンクされていないため、作成される新しいファイルですが、まったく同じメタデータではない可能性がありますか?

これを説明するには、次のコマンドを実行します。

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}'

これらのサイズは同じである必要があります(dirファイルは含まれていません)。ディレクトリサイズを含むリストを印刷し、結果を比較して、どのdirが正確に異なるかを見つけることができます。

2
Nicholi