Linux下查看文件和文件夹大小

有些时候总想了解下文件和目录大小和总空间大小,在linux下,熟练使用如下几个命令可以非常清楚的知道期望知道的内容。

dfdf --help 用法:df [选项]... [文件]... 显示每个文件所在的文件系统的信息,默认是显示所有文件系统。dudu --help 用法:du [选项]... [文件]... 或:du [选项]... --files0-from=F 计算每个文件的磁盘用量,目录则取总用量。 知道了这两个命令后,看完help,差不多就很清楚了,下面举几个例子: [root@jp1 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 9289080 3851940 4965284 44% / tmpfs 182252 0 182252 0% /dev/shm [root@jp1 ~]# [code]
[root@jp1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 8.9G 3.7G 4.8G 44% /
tmpfs 178M 0 178M 0% /dev/shm
[root@jp1 ~]#

[/code]加了-h后,显示结果更加符合我们的习惯。

此处发现,此处的短选项-h并不是很多命令熟知的–help的同义词,而是一个新含义的同义词,这个选项对于查看非常有帮助,后面细看。 [root@jp1 ~]# du 4 ./.subversion/auth/svn.ssl.server 8 ./.subversion/auth/svn.simple 4 ./.subversion/auth/svn.username 4 ./.subversion/auth/svn.ssl.client-passphrase 24 ./.subversion/auth 52 ./.subversion 8 ./.ssh 124 . [root@jp1 ~]# 使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。

这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:–max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小。 [root@jp1 ~]# du -h --max-depth=1 52K ./.subversion 8.0K ./.ssh 124K . [root@jp1 ~]# [root@jp1 ~]# du -h --max-depth=1 ./* 4.0K ./anaconda-ks.cfg 12K ./install.log 4.0K ./install.log.syslog [root@jp1 ~]# 注意,-h作为–human-readable在ls下也是有效的:如ls -lh等;[root@jp1 ~]# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 9289080 3851952 4965272 44% / tmpfs 182252 0 182252 0% /dev/shm [root@jp1 ~]# du 统计文件大小相加 。

df 统计数据块使用情况 。

如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。

直到这个打开大文件的进程被Kill掉。

我们碰到的问题是,我们在定期删除 /var/spool/clientmqueue下面的文件,但是没有杀掉其进程,所以空间一直没有释放。

使用下面的命令杀掉进程之后,系统恢复。