相同的資料夾內容但不同磁碟機上的大小不同,為什麼?

相同的資料夾內容但不同磁碟機上的大小不同,為什麼?

我有同一個資料夾的三個副本,但它們的大小不同。為什麼?

我有一個資料夾“Documents”,已將其從桌面硬碟上的加密 lvm 複製到外部磁碟機上的加密 luks 分割區。然後,我將此資料夾從外部磁碟機複製到筆記型電腦硬碟上的加密 lvm 中。

所以我有同一個資料夾的三個副本:

  • 桌面
  • 外部驅動器
  • 筆記型電腦

diff我在桌上型電腦和外部硬碟之間使用過--> 沒有區別。

diff我在筆記型電腦和外部硬碟之間使用過--> 沒有區別。

但我對這三種情況有不同的資料夾大小。

我用過

du -bs --apparent-size Documents

測量尺寸。結果如下:

  • 桌面:1735750760
  • 外置驅動:1735742568
  • 筆記型電腦:1735746664

因此,我們注意到尺寸之間存在細微差別。差異雖小但仍然存在。我想知道為什麼會這樣。你有解釋嗎?

答案1

您可能已經注意到,不同資料夾之間的差異如下:

    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/),而以 開頭的行列出了位於>作為第二個參數給出的目錄中的目錄(例如/media/lemenhir/ExternalDrive/) 。

如果出現單行,則表示該目錄在相對目錄中不存在。

希望這可以幫助。

相關內容