仅查看“ls -ald”即可确定目录中的文件数

Ale*_*lex 4 ls

我有一个包含很多文件的目录。

如何通过 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 磁盘布局

第三是目录甚至可能不是线性的,这使问题进一步复杂化。

第四个是目录的大小是块大小的倍数,所以一个文件的目录和一个二十个文件的目录通常大小相同。