我有同一个文件夹的三个副本,但它们的大小不同。为什么?
我有一个文件夹“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/) 。
如果出现单行,则该目录在相反的目录中不存在。
希望这可以帮助。