我有一个包含很多文件的目录。
如何通过 ls 报告的元数据的大小找出
drwxr-x--- 2 www-data www-data 1017M Aug 8 10:44 cookies_
Run Code Online (Sandbox Code Playgroud)
目录中有多少文件。
我不想计算它们(即使在确定目录中的文件数而不计算它们时也会计算它们)
Ste*_*itt 17
你不能,原因有很多。
第一个是目录的大小会增加,但不会缩小(无论如何在大多数文件系统上)。尝试这个:
mkdir testdir && cd testdir
touch {1..100000}
rm {1..100000}
ls -ld ../testdir
Run Code Online (Sandbox Code Playgroud)
这将产生一个相当大的目录(诚然不像你的目录,但这与这里无关)不包含任何文件......
第二个是在大多数情况下,目录条目内的文件记录的长度是可变的,具体取决于文件名。例如,参见ext4 磁盘布局。
第三是目录甚至可能不是线性的,这使问题进一步复杂化。
第四个是目录的大小是块大小的倍数,所以一个文件的目录和一个二十个文件的目录通常大小相同。