当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-12 3:01 

注册: 2010-12-19 16:04
帖子: 20
送出感谢: 0 次
接收感谢: 0 次
我想统计下某个目录(其中的所有文件)占硬盘空间的大小,
用du -sh能统计出来,但是如果该目录下文件太多的话这种方法就
很慢,而且硬盘不停的响.
有没快点的命令可以用,不需要很精确,只要大概知道某个目录占用的空间就行了.


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-12 9:42 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
很多?还是du
或者 baobab


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-12 17:34 

注册: 2010-12-19 16:04
帖子: 20
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
很多?还是du
或者 baobab

请问du用哪些参数能快速点呢.
俺用du -sh当文件多的时候就要计算半天.


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-12 20:28 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
du 已被别名为“du -sch”

我这很快。机器也算快吧。不知道你机器的情况。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-12 22:07 

注册: 2010-12-19 16:04
帖子: 20
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
du 已被别名为“du -sch”

我这很快。机器也算快吧。不知道你机器的情况。

这个怎么会快啊,你到一个数据比较多的目录(比如/usr, /home)
试下看,会有半天硬盘都在响,我想du是一个文件一个文件计算的,
这样太要命了.


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-12 23:01 

注册: 2011-01-12 21:42
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
除了du好像没有其他命令了。要快,就自己写个c程序统计(没办法得到大概空间吧?要么精确,要么错误........),但算法一定不要递归,否则一样很慢......

这样一样读写磁盘.... :em03

通过命令来考虑提高速度是不现实的......

du命令的各个选项含义如下:
-s:对每个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。
-k:以1024字节为单位列出磁盘空间使用情况。
-c:最后再加上一个总计(系统默认设置)。
-l:计算所有的文件大小,对硬链接文件,则计算多次。
-x:跳过在不同文件系统上的目录不予统计。

ps: 哪天有空可以看看du的实现源码呀,楼主............


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-12 23:41 
头像

注册: 2008-09-18 13:11
帖子: 2763
送出感谢: 1
接收感谢: 447
iaagssphinx 写道:
这个怎么会快啊,你到一个数据比较多的目录(比如/usr, /home)
试下看,会有半天硬盘都在响,我想du是一个文件一个文件计算的,
这样太要命了.


不一个一个文件计算你还能怎么办?在文件系统中又没存储每个目录中文件的总大小
要想快的话除非自己写一个程序在后台统计每个目录的大小并存起来,并随着每一次文件的写入进行修改,以后你就可以不必递归查询,直接读那个缓存就是了
确实有经常du的需要的话,还不如将那个目录单独分出来,以后直接df了


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-13 14:26 

注册: 2010-12-19 16:04
帖子: 20
送出感谢: 0 次
接收感谢: 0 次
看来也只有7楼的可行了


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-13 23:05 
头像

注册: 2010-12-09 2:49
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
--max-depth=N print the total for a directory (or file, with --all)
only if it is N or fewer levels below the command
line argument; --max-depth=0 is the same as
--summarize

觉得这个应该可以把 --max-depth = 1


_________________
介个是个嘛呀!


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-01-15 13:00 

注册: 2010-08-08 15:41
帖子: 19
送出感谢: 1
接收感谢: 0 次
我也碰到这个问题了,具体是:
有一个目录,在该目录下第一层还有大约好几百个目录,在每个目录下还都有好几百个目录,现在要统计该目录占用空间大小,用du 命令,还只是空目录就花了好几分钟,而且只是一个这样的目录,程序中这样的目录应该不会少,
如此,其速度真无语,请问有什么办法没,谢谢


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-02-07 14:16 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
代码:
find dir -type f -exec ls -l '{}' ';' | awk 'BEGIN{ x=0 } { x = x + $5 } END{ print x }'
行不?


_________________
代码:
] ls -ld //


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-02-07 14:37 
头像

注册: 2008-07-28 19:51
帖子: 805
地址: 长沙
送出感谢: 1
接收感谢: 2
用图形化的界面操作,会不会好一点,具体执行的指令不知道(ps -ef没刷出来),我的130G的/home/很快就出来了。


_________________
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-02-16 19:32 
头像

注册: 2005-07-02 14:41
帖子: 4160
系统: Ubuntu 14.04 (Kylin)
送出感谢: 64
接收感谢: 12
degreying 写道:
--max-depth=N print the total for a directory (or file, with --all)
only if it is N or fewer levels below the command
line argument; --max-depth=0 is the same as
--summarize

觉得这个应该可以把 --max-depth = 1


这个只是结果清爽一点,计算的功夫还是一样的。


_________________
https://weakish.github.io


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-02-18 18:13 

注册: 2007-07-01 17:36
帖子: 229
地址: (En):address
系统: (En):System
送出感谢: 2
接收感谢: 3
有个想法,自己没测试。不知道可行不?

把这个目录作为NFS共享挂载在某处。然后通过df -h 来获得信息,应该快吧?


_________________
---
regards,

Kent


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 如何快速获取目录所占的空间大小
帖子发表于 : 2011-02-18 22:38 
头像

注册: 2005-07-02 14:41
帖子: 4160
系统: Ubuntu 14.04 (Kylin)
送出感谢: 64
接收感谢: 12
sk1418 写道:
有个想法,自己没测试。不知道可行不?

把这个目录作为NFS共享挂载在某处。然后通过df -h 来获得信息,应该快吧?


df -h出来的还是该目录所在原文件系统的信息。


_________________
https://weakish.github.io


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译