我没有成功运行命令来获取目录的大小(文件里面的文件属于目录的大小)
ls -lSrh
我只获得了目录大小的千比特,而其内容超过了。
如何按 ls 列出目录的大小,包括其内容?
答案 0 :(得分:20)
du -sh directory_name
ls
将为您提供目录条目的大小,而不是目录内容的大小。基于我man ls
的快速浏览,似乎没有办法让ls
潜入并计算目录的大小(很可能是因为这将是一项昂贵的操作)。
答案 1 :(得分:3)
如果要获取目录大小,可以使用
du -sh
答案 2 :(得分:1)
du -hs
非常棒,直到你有一个大目录。
例如,如果您存储缓存文件(例如Rails的文件系统缓存存储)或上传的文件,...使用分区架构,例如“cache / 123/456/789 / real_files”并且您有很多,du
正在永远,最终阻止所有IO。
我没有更好的解决方案,但在高峰时间在生产服务器上运行之前要考虑这一点。
答案 3 :(得分:1)
在Sean Bright的回答基础上,您可以执行以下操作(在BASH中)
for each in $(echo */ | sed "s/ /\n/g" | sed "s/\///g"); do du -hs "$each"; done;
这将获取当前目录中所有目录的完整目录内容。