我正在使用这些命令:
du -sh --apparent-size ./*
du -sh ./*
两个报告:
4.0K ./Lightroom_catalog_from_win_backup
432M ./Lightroom catalog - wine_backup
而这些目录包含:
$ll ./"Lightroom catalog - wine_backup"
total 432M
-rwxrwx--- 1 gigi gigi 432M Mar 18 2018 Lightroom 5 Catalog Linux.lrcat
-rwxrwx--- 1 gigi gigi 227 Nov 21 2015 zbackup.bat
$ll ./Lightroom_catalog_from_win_backup
total 396M
-rwxrwx--- 3 gigi gigi 396M Dec 17 09:35 Lightroom 5 Catalog Linux.lrcat
-rwxrwx--- 3 gigi gigi 227 Dec 17 09:35 zbackup.bat
为什么du
要报告4.0K
./Lightroom_catalog_from_win_backup 以及如何使其正确报告?
PS:其他系统信息:
$stat --file-system $HOME
File: "/home/gigi"
ID: 5b052c62a5a527bb Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 720651086 Free: 155672577 Available: 119098665
Inodes: Total: 183050240 Free: 178896289
$lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
如果文件是硬链接,我可以重现:
这是预期的行为。来自GNU
du
文档:如果您确实需要重复大小的硬链接,请尝试以下
-l
选项:请注意
3
两个文件Lightroom 5 Catalog Linux.lrcat
和zbackup.bat
.Lightroom_catalog_from_win_backup
这意味着这两个文件硬链接到某处的其他文件(附加名称)。当您
du
在一个目录或一组文件上运行时,每个硬链接只计算一次。例子:
此行为由实用程序的 POSIX 标准
du
明确规定:一些
du
实现具有禁用此行为的非标准选项。对于 GNUdu
,这是通过-l
选项完成的。它几乎可以肯定工作正常。
du
无论引用多少次,每个文件只计算一次。您的两个目录可能包含同一组硬链接文件。GNU 的手册页
du
提供-l
,--count-links
来关闭这个标准优化(查看man du
你的实现是否包括这个)。或者您运行du
两次,每个目录运行一次。