rsync
インクルードシンボリックリンク、ハードリンク、権限、ターゲットファイルの削除などを使用してフォルダをコピーしました。それらは非常に似ているはずです。
1つのフォルダはUSBドライブにあり、もう1つはローカルディスクにあります。
両方のフォルダで次を実行すると、du -bls
サイズが若干異なります。
私のdu
サポートはハードリンクとして適用さ--apparent-size
れ、ハードリンクの内容を計算する必要があります。-s
-l
この違いを説明する方法と実際の合計を取得する方法は?
どちらのファイルシステムもext4であり、唯一の違いはUSBドライブが暗号化されることです。
編集する:
実際、別のフォルダを探すために深く掘り下げられ、1つを見つけました。内容は特別ではありません(ブロックデバイスなし、パイプなし、ハードリンクまたはシンボリックリンクなし、ゼロバイトファイルなし)。特別な点は、おそらくいくつかの小さなファイルがあります。 。この特定のフォルダの違いは872830と881022です。
また、du -blsc
両方のフォルダで実行しましたが、この場合は結果は同じです。
私が使用したコマンドの詳細は次のとおりです。
$ du -Pbsl $LOCALDIR $USBDIR | cut -f1
872830
881022
$ du -Pbslc $LOCALDIR/*
[...]
868734 total
$ du -Pbslc $USBDIR/*
[...]
868734 total
$ ls -la $USBDIR | wc
158 1415 9123
$ ls -la $LOCALDIR | wc
158 1415 9123
$ diff -sqr --no-dereference $LOCALDIR $USBDIR | grep -v identical
[No output and all identical if I remove the grep]
ベストアンサー1
を使用してファイルをコピーし、をrsync
使用して両方のファイルセットを比較し、報告された違いがないため、両方のファイルdiff
セットdiff
は同じです。
サイズの違いは、両方のディレクトリ構造の実際のディレクトリノードサイズとして記述できます。一部のファイルシステムでは、ファイルまたはサブディレクトリが削除された場合、ディレクトリは切り捨てられず、実際に必要なものより少し大きいディレクトリノードが残ります。
後で削除された多くのファイルをある時点でアーカイブした場合は、大きなディレクトリノードが残ることがあります。
例:
$ mkdir dir
$ ls -ld dir
drwxr-xr-x 2 kk wheel 512 May 11 17:09 dir
$ touch dir/file-{1..1000}
$ ls -ld dir
drwxr-xr-x 2 kk wheel 20480 May 11 17:09 dir
$ rm dir/*
$ ls -ld dir
drwxr-xr-x 2 kk wheel 20480 May 11 17:09 dir
$ du -h .
20.0K ./dir
42.0K .
$ ls -R
dir
./dir:
作成した1000個のファイルを削除しても、ディレクトリはdir
まだ20KBを使用します。