あるファイルサーバ(fileserver_xfs)から別のファイルサーバ(fileserver_zfs)にディレクトリをコピーしました。コピー元とコピー先で別のファイルサーバにコピーしたディレクトリで du を実行すると異なる値が表示されます。正常にコピーできているのでしょうか。
$ du -k /fileserver_xfs/share/projectX 49975527796 /fileserver_xfs/share/projectX $ du -k /fileserver_zfs/share/projectX 47694090201 /fileserver_zfs/share/projectX
ファイルシステムの違いによるもので、異常ではありません。
du コマンドが表示するのは「ファイルの中身のサイズ」ではなく、「ファイルシステムが実際に割り当てたディスク領域の量」です。ファイルサーバごとにファイルシステムの種類や設定が異なると、ブロックの割り当て単位、ディレクトリの管理方法、透過圧縮の有無などが異なるため、中身が同じディレクトリでも du の値は一致しません。
中身のサイズ(論理サイズ)で比較したい場合は、次のように --apparent-size オプションを付けてください。
$ du -k --apparent-size -s <ディレクトリ>
ただし、ディレクトリ自体のサイズの計上方法の違い等により、この方法でも完全には一致しない場合があります。
正常にコピーできているか(ファイルの中身が同一であるか)を確認したい場合は、du ではなく diff、md5sum(もしくは sha256sum)、cmp 等による照合を行ってください。
差分が表示されなければ、ファイル名の集合と中身の両方が一致しており、正常にコピーできています。
(最終更新日 2026年6月16日)