为什么 du 给了我意想不到的输出?

nki*_*int 3 disk-usage

我是 Linux 新手,很抱歉我的简单问题。我在 Ubuntu 上。

我有这个目录:

$ ls -al
total 16
drwxr-xr-x 2 alberto alberto 4096 2011-04-03 16:02 .
drwxr-xr-x 4 alberto alberto 4096 2011-04-03 16:01 ..
-rw-r--r-- 1 alberto alberto    7 2011-04-03 16:02 .hidden
-rw-r--r-- 1 alberto alberto    4 2011-04-03 15:51 testfile
Run Code Online (Sandbox Code Playgroud)

当我运行时du,我期待这个:

$ du
4   testfile
4   .hidden
Run Code Online (Sandbox Code Playgroud)

但我得到这个:

$ du
12  .
$ du *
4   testfile
$ du .*
12  .
20  ../snippet
12  ../test
52  ..
4   .hidden
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

Gil*_*il' 7

du按目录汇总磁盘使用情况。在您的示例中,由于当前目录没有子目录,因此输出是一行。

如果您在命令行上传递文件名,则会报告其大小。如果传递多个文件的名称,则相当于¹运行du多次;因此du .*等价于du .; du ..; du .hidden

运行du -a查看每个文件占用的空间。

 $ du -a
 4   .hidden
 4   testfile
 12  .
Run Code Online (Sandbox Code Playgroud)

¹ 几乎:在某些系统上,如果一个常规文件有多个硬链接,那么它只会在特定du调用中第一次到达时计算。