我有同一個資料夾的三個副本,但它們的大小不同。為什麼?
我有一個資料夾“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/) 。
如果出現單行,則表示該目錄在相對目錄中不存在。
希望這可以幫助。