我是 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)
为什么会这样?
du按目录汇总磁盘使用情况。在您的示例中,由于当前目录没有子目录,因此输出是一行。
如果您在命令行上传递文件名,则会报告其大小。如果传递多个文件的名称,则相当于¹运行du多次;因此du .*等价于du .; du ..; du .hidden。
运行du -a查看每个文件占用的空间。
$ du -a
4 .hidden
4 testfile
12 .
Run Code Online (Sandbox Code Playgroud)
¹
几乎:在某些系统上,如果一个常规文件有多个硬链接,那么它只会在特定du调用中第一次到达时计算。