duを含むフォルダのサイズ

duを含むフォルダのサイズ

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を使用します。

おすすめ記事