我正在尝试移动一些数据,首先我想确保大小合适。但是,如果我使用以下命令检查文件夹,我会遇到问题
du -sh myfolder/
780M myfolder/
但
du -sh *
..
71M myfolder
..
我认为这可能与隐藏文件有关,但这个特定的文件夹里面没有任何内容。
我错过了什么吗?
答案1
很可能myfolder
包含 709 MB 的文件,这些文件在按字典顺序排序之前的子目录中具有另一个硬链接myfolder
。该du
命令仅在第一次看到每个不同的文件时报告它,因此,如果一个文件在运行 覆盖的树内有多个链接du
,则仅在首先遍历的目录下报告一次。
您可以通过以下几种方式查找硬链接:
find myfolder -links +1 -type f
myfolder
列出在(+1
表示“多个”)下至少有第二个硬链接的所有文件,无论该链接位于何处。find . -samefile myfolder/foo
myfolder/foo
(使用 GNU find)列出当前目录下的所有硬链接。由于myfolder
位于当前目录下,因此其中包括myfolder/foo
其自身。find -type f -links +1 -printf '%i %p\n' | sort -k1n
(使用 GNU find)在当前目录下生成硬链接文件列表,按 inode 编号分组。如果两个文件位于同一文件系统上并且具有相同的 inode 号,则它们是相同的。