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

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

我是 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

当我跑步时du,我期待这个:

$ du
4   testfile
4   .hidden

但我得到这个:

$ du
12  .
$ du *
4   testfile
$ du .*
12  .
20  ../snippet
12  ../test
52  ..
4   .hidden

为什么会发生这种情况?

答案1

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

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

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

 $ du -a
 4   .hidden
 4   testfile
 12  .

几乎 :在某些系统上,如果常规文件具有多个硬链接,则仅在特定调用中第一次到达时才对其进行计数du

相关内容