同じフォルダのコピーが3つありますが、サイズが異なります。どうして?
デスクトップのハードドライブ上の暗号化されたlvmから外部ドライブ上の暗号化されたluksパーティションにコピーした「Documents」フォルダーがあります。次に、このフォルダーを外付けドライブからラップトップのハードドライブ上の暗号化されたlvmにコピーしました。
したがって、同じフォルダのコピーが3つあります。
デスクトップと外付けドライブの間でdiff
を使用しました->違いはありません。
私はラップトップと外付けドライブの間でdiff
を使用しました->違いはありません。
しかし、私は3つのケースで異なるフォルダーサイズを持っています。
利用した
du -bs --apparent-size Documents
サイズを測定します。結果は次のとおりです。
そのため、サイズにわずかな違いがあることがわかります。小さな違いですが、まだあります。なぜそうなのかと思っていました。説明はありますか?
異なるフォルダの違いは次のとおりです。
Desktop: 1735750760
- 8192
External drive: 1735742568
+ 4096
Laptop: 1735746664
私の経験では、このような4Kブロックの違いは通常、ディレクトリサイズの変更に起因します。ディレクトリ自体のサイズを比較すると(extファイルシステムでは通常4Kの倍数)、違いが見つかる場合があります。
(たとえば、コピー操作中にディレクトリが再構築され、削除されたエントリが削除されると、ディレクトリが小さくなることがあります)
サイズが異なるディレクトリを見つけるには、ディレクトリを相互に比較する必要があります。次のスクリプトはそれを支援することができます:
#!/bin/bash
DIR1="${1%/}/"
DIR2="${2%/}/"
diff \
<(find $DIR1 -type d -printf "%k %p\n" | sed -e "s|$DIR1||" | sort -k2) \
<(find $DIR2 -type d -printf "%k %p\n" | sed -e "s|$DIR2||" | sort -k2)
コードを新しいファイル(dircomp.shなど)にコピーして、実行可能ファイルchmod +x dircomp.sh
にします。次に、それを./dircomp.sh /home/lemenhir/ /media/lemenhir/ExternalDrive/
のように呼び出します。
出力には、サイズの異なるディレクトリのみが一覧表示され、次のようになります。
< 4 Documents/Appartement/Bail
> 8 Documents/Appartement/Bail
これにより、<
で始まる行は、最初のパラメーター(/ home/lemenhir /など)として指定されたディレクトリーにあるディレクトリーをリストし、>
で始まる行は、2番目のパラメーターとして指定されたディレクトリーにあるディレクトリーをリストします。 (例:/ media/lemenhir/ExternalDrive /)。
単一行が表示される場合、そのディレクトリは反対側のディレクトリに存在しません。
お役に立てれば。