du 显示 * 和文件夹名称完全不同的文件夹大小

Bar*_*t C 2 disk-usage

我正在尝试移动一些数据,首先我想确保大小合适。但是,如果我使用以下命令检查文件夹,我会遇到问题

du -sh  myfolder/
780M    myfolder/
Run Code Online (Sandbox Code Playgroud)

du -sh *
..
71M     myfolder
..
Run Code Online (Sandbox Code Playgroud)

我认为这可能与隐藏文件有关,但这个特定的文件夹里面没有任何内容。

我错过了什么吗?

Gil*_*il' 5

很可能myfolder包含 709\xc2\xa0MB 的文件,这些文件在按字典顺序排序在 之前的子目录中具有另一个硬链接myfolder。该du命令仅在第一次看到每个不同的文件时报告它,因此,如果一个文件在运行 覆盖的树内有多个链接du,则仅在首先遍历的目录下报告一次。

\n\n

您可以通过以下几种方式查找硬链接:

\n\n
    \n
  • find myfolder -links +1 -type fmyfolder列出在(表示 \xe2\x80\x9c 多于一个\xe2\x80\x9d)下至少有第二个硬链接的所有文件+1,无论该链接位于何处。
  • \n
  • find . -samefile myfolder/foomyfolder/foo(使用GNU find)列出当前目录下的所有硬链接。由于myfolder位于当前目录下,因此它包括myfolder/foo其自身。
  • \n
  • find -type f -links +1 -printf '%i %p\\n' | sort -k1n(使用 GNU find)在当前目录下生成硬链接文件列表,按 inode 编号分组。如果两个文件位于同一文件系统并且具有相同的 inode 号,则它们是相同的。
  • \n
\n