du 命令不解析隐藏目录

du 命令不解析隐藏目录

我想使用以下命令估计目录使用的磁盘空间量。

du -sh dir_name

它不计算隐藏目录。du 的手册页中没有关于它的信息。如何计算包括隐藏文件在内的目录使用的磁盘空间量。

答案1

事实上确实如此,证据如下:

mkdir .test
echo "hi" > .test/appo
du -a
4       ./.test/appo
8       ./.test
12      .

-a选项用于明确显示哪些文件已被计算。

你正在用吗du *

答案2

此命令使用正则表达式显示隐藏目录的汇总大小:

du -hs .[^.]*

答案3

正确的命令是:du -hs $(ls -A)

$ du -hs $(ls -A)
0   test
0   .test

du -hs .* *正如另一个答案中提到的,如果您想列出所有文件和子目录(包括隐藏文件和子目录),这是不正确的。

例子 :

$ touch test
$ touch .test
$ echo *
test
$ echo .* *
. .. .test test
$ du -hs .* *
4,0K    .
1,8G    ..

为什么会du这样?因为你使用了-s总结结果,并且所有文件和子目录都是子目录,.所以du -hs没有列出它们!

答案4

du -ahd1 | sort -hr | head -10

-d以下是选项的描述du --help

-d, --max-depth=N 仅当目录(或文件,使用 --all)低于命令行参数的级别为 N 或更少时才打印该目录的总数;--max-depth=0 与 --summarize 相同

相关内容