linux下查看文件个数及大小
ls-l|grep"^-"|wc-l
或
find./company-typef|wc-l
查看某文件夹下文件的个数,包括子文件夹里的。
ls-lR|grep"^-"|wc-l
查看某文件夹下文件夹的个数,包括子文件夹里的。
ls-lR|grep"^d"|wc-l
说明:
ls-l
长列表输出该目录下文件信息(注意这儿的文件,不同于通常的文件,可能是目录、链接、设备文件等)
grep"^-"
这儿将长列表输出信息过滤一部份,只保留通常文件,若果只保留目录就是^d
wc-l
统计输出信息的行数,由于早已过滤得只剩通常文件了,所以统计结果就是通常文件信息的行数,又因为
一行信息对应一个文件,所以也就是文件的个数。
Linux查看文件夹大小
du-sh查看当前文件夹大小
du-sh*|sort-n统计当前文件夹(目录)大小,并按文件大小排序
du-skfilename查看指定文件大小
当c盘大小超过标准时会有报案提示,这时假若把握df和du命令是十分明智的选择。
df可以查看一级文件夹大小、使用比列、档案系统及其挂入点,但对文件却无能为力。
du可以查看文件及文件夹的大小。
二者配合使用,特别有效。诸如用df查看那个一级目录过大,之后用df查看文件夹或文件的大小,这么便可迅速确定弊端。
下边分别简略介绍
df命令可以显示目前所有文件系统的可用空间及使用情形,请看下述这个反例:
以下是代码片断:
[yayug@yayu~]$df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda13.9G300M3.4G8%/
/dev/sda7100G188M95G1%/data0
/dev/sdb1133G80G47G64%/data1
/dev/sda67.8G218M7.2G3%/var
/dev/sda57.8G166M7.2G3%/tmp
/dev/sda39.7G2.5G6.8G27%/usr
tmpfs2.0G02.0G0%/dev/shm
参数-h表示使用「Human-readable」的输出,也就是在档案系统大小使用GB、MB等易读的格式。
里面的命令输出的第一个数组(Filesystem)及最后一个数组(Mountedon)分别是档案系统及其挂入点。我们可以看见/dev/sda1这个分割区被挂在根目录下。
接出来的四个数组Size、Used、Avail、及Use%分别是该分割区的容量、已使用的大小、剩下的大小、及使用的比率。FreeBSD下,当硬碟容量已满时,您可能会见到已使用的比率超过100%,由于FreeBSD会留一些空间给root,让root在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
du:查询文件或文件夹的c盘使用空间
假如当前目录下文件和文件夹好多,使用不带参数du的命令,可以循环列举所有文件和文件夹所使用的空间。这对查看到底是哪个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”linux统计文件个数命令,可以得到文件的使用空间大小.
提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为-d。
以下是代码片断:
[root@bssoyayu]#du-h--max-depth=1work/testing
27Mwork/testing/logs
35Mwork/testing
[root@bssoyayu]#du-h--max-depth=1work/testing/*
8.0Kwork/testing/func.php
27Mwork/testing/logs
8.1Mwork/testing/nohup.out
8.0Kwork/testing/testing_c.php
12Kwork/testing/testing_func_reg.php
8.0Kwork/testing/testing_get.php
8.0Kwork/testing/testing_g.php
8.0Kwork/testing/var.php
[root@bssoyayu]#du-h--max-depth=1work/testing/logs/
27Mwork/testing/logs/
[root@bssoyayu]#du-h--max-depth=1work/testing/logs/*
24Kwork/testing/logs/errdate.log_show.log
8.0Kwork/testing/logs/pertime_show.log
27Mwork/testing/logs/show.log
值得注意的是,看到一个针对du和df命令优缺的文章:《dudf差别造成文件系统误报解决》。
du统计文件大小相乘
df统计数据块使用情况
假如有一个进程在打开一个大文件的时侯,这个大文件直接被rm或则mv掉,则du会更新统计数值,df不会更新统计数值,还是觉得空间没有释放。直至这个打开大文件的进程被Kill掉。
这么一来在定期删掉/var/spool/clientmqueue下边的文件时linux统计文件个数命令,假若没有杀掉其进程,这么空间仍然没有释放。
使用下边的命令杀坠入程以后,系统恢复。
fuser-u/var/spool/clientmqueue
查看linux文件目录的大小和文件夹包含的文件数
统计总量大小
du-shxmldb/
du-sm*|sort-n//统计当前目录大小并安大小排序
du-sk*|sort-n
du-sk*|grepguojf//看一个人的大小
du-m|cut-d"/"-f2//看第二个/字符前的文字
查看此文件夹有多少文件/*/*/*有多少文件
duxmldb/
duxmldb/*/*/*|wc-l
40752
解释:
wc[-lmw]
参数说明:
-l:多少行
-m:多少字符
-w:多少字
Linux:ls以K、M、G为单位查看文件大小
#manls
……
-h,--human-readable
printsizesinhumanreadableformat(e.g.,1K234M2G)
……
#ls
cuss.warnohup.out
#ls-l
total30372
-rw-r--r--1rootroot31051909May2410:07cuss.war
-rw-------1rootroot0Mar2013:52nohup.out
#ls-lh
total30M
-rw-r--r--1rootroot30MMay2410:07cuss.war
-rw-------1rootroot0Mar2013:52nohup.out
#ll-h
total30M
-rw-r--r--1rootroot30MMay2410:07cuss.war
-rw-------1rootroot0Mar2013:52nohup.out
df命令详尽用法
a:显示全部的档案系统和各分割区的c盘使用情形
i:显示i-nodes的使用量
k:大小用k来表示(默认值)
t:显示某一个档案系统的所有分割区c盘使用量
x:显示不是某一个档案系统的所有分割区c盘使用量
T:显示每位分割区所属的档案系统名称
常用命令:df-hi
操作解读
引用
指令df可以显示目前所有档案系统的最大可用空间及使用情形,请看下述这个反例:
#df-h
FilesystemSizeUsedAvailCapacityMountedon
/dev/ad0s1a1.9G389M1.4G21%/
devfs1.0K1.0K0B100%/dev
/dev/ad0s1d989M54K910M0%/tmp
/dev/ad0s1f4.8G3.8G657M86%/usr
/dev/ad0s1e1.9G149M1.6G8%/var
/dev/ad0s1g26G890K24G0%/volume2
/dev/da0s1d325G261G38G87%/volume1
我们加了参数-h表示使用「Human-readable」的输出,也就是在档案系统大小使用GB、MB等易读的格式。
里面的指令输出的第一个数组及最后一个数组分别是档案系统及其挂入点。我们可以看见/dev/ad0s1a这个分割区被挂在根目录下。我们在上一小节提及过ad所代表的是IDE的硬碟,而s1表示第一个主要磁道。我另外有一个SCSI硬碟免费linux主机,它的代号是da,它的容量很大,主要拿来储存数据。devfs是一个非常的档案系统,该档案系统并非真的c盘,而是FreeBSD拿来管理系统硬件装置的虚拟档案系统。
接出来的四个数组Size、Used、Avail、及Capacity分别是该分割区的容量、已使用的大小、剩下的大小、及使用的比率。当硬碟容量已满时linux系统镜像下载,您可能会见到已使用的比率超过100%,由于FreeBSD会留一些空间给root,让root在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
另外,我们还可以使用参数-i来查看目前档案系统inode的使用情形。有的时侯其实档案系统还有空间,但若没有足够的inode来储存档案的信息,一样会不能降低新的档案。
#df-ih
FilesystemSizeUsedAvailCapacityiusedifree%iusedMountedon
/dev/ad0s1a1.9G389M1.4G21%204952621277%/
devfs1.0K1.0K0B100100%/dev
/dev/ad0s1d989M62K910M0%241412860%/tmp
/dev/ad0s1f4.8G3.8G657M86%31143934801547%/usr
/dev/ad0s1e1.9G149M1.6G8582808641%/var
/dev/ad0s1g26G890K24G035327860%/volume2
/dev/da0s1d325G261G38G87%707277433114092%/volume1
我们可以看见根目录的早已用掉的inode数目为20495,还有262127的可用inode。
小提示
还记得哪些是inode吗?所谓的inode是拿来储存档案及目录的基本信息(metadata),包含时间、档名、使用者及群组等。在分割磁道时,系统会先作出一堆inode以供之后使用,inode的数目关系着系统中可以构建的档案及目录总量。假如要存的档案大部份都很小,则同样大小的硬碟中会有较多的档案,也就是说须要较多的inode来挂档案及目录。
du:查询档案或目录的c盘使用空间
a:显示全部目录和其次目录下的每位档案所占的c盘空间
b:大小用bytes来表示(默认值为kbytes)
c:最后再加上总计(默认值)
s:只显示各档案大小的总合(summarize)
x:只估算同属同一个档案系统的档案
L:估算所有的档案大小
常用命令:du-a
操作解读
引用
指令du能以指定的目录下的子目录为单位,显示每位目录内所有档案所占用的c盘空间大小。诸如:
#du-h/etc
104K/etc/defaults
6.0K/etc/X11
8.0K/etc/bluetooth
4.0K/etc/gnats
52K/etc/isdn
388K/etc/mail
68K/etc/mtree
2.0K/etc/ntp
38K/etc/pam.d
44K/etc/periodic/daily
6.0K/etc/periodic/monthly
42K/etc/periodic/security
16K/etc/periodic/weekly
110K/etc/periodic
6.0K/etc/ppp
318K/etc/rc.d
2.0K/etc/skel
130K/etc/ssh
10K/etc/ssl
1.7M/etc
我们目样使用-h参数来显示human-readable的格式。在应用时,我们可以使用du这个指令来查看那个目录占用最多的空间。不过,du的输出结果一般很长,我们可以加上-s参数来省略指定目录下的子目录,而只显示该目录的总合即可:
#du-sh/etc
1.7M/etc
在查看目录的使用情形时,我们可以将输出结果导到sort指令进行排序,以了解那个档案用了最多的空间:
#du/etc|sort-nr|more
1746/etc
388/etc/mail
318/etc/rc.d
130/etc/ssh
110/etc/periodic
104/etc/defaults
68/etc/mtree
52/etc/isdn
44/etc/periodic/daily
42/etc/periodic/security
38/etc/pam.d
16/etc/periodic/weekly
10/etc/ssl
8/etc/bluetooth
6/etc/ppp
6/etc/periodic/monthly
6/etc/X11
4/etc/gnats
2/etc/skel
2/etc/ntp
sort的参数-nr表示要以数字排序法进行反向排序,由于我们要对目录大小做排序,所以不可以使用human-readable的大小输出,不然目录大小中会有K、M等字样,会导致排序不正确。