linux下对符合条件的文件大小做汇总【转】
使用du命令查看一个目录下符合匹配条件的文件占用的磁盘空间
- du-c -h*log
e.g:
有一个目录test有存放有一年的xml文件
是以test_user_company_yyyyMMDD.xml方式命名进行存放。。。
要统计2012年1月产生的文件大小,命令如下:
定位到test目录:
du -c -h *_201201*.csv
或者
du -ch *_201201*.csv
1M test_user_company_20120101.xml
1M test_user_company_20120102.xml
1M test_user_company_20120103.xml
1M test_user_company_20120104.xml
1M test_user_company_20120105.xml
....
....
1M test_user_company_20120131.xml
31M total
查看当前目录下所有文件夹及文件的大小:
test
|__subdir1
|__subdir2
|__test_user_company_20120101.xml
|....
|__test_user_company_20120131.xml
定位到当前目录,命令如下:
du -sh *
0M subdir1
0Msubdir2
1Mtest_user_company_20120101.xml
......
1Mtest_user_company_20120131.xml
31M total要显示如上汇总统计total的值,命令如下:
du -sch *
或使用awk做汇总
- du*log|awknoBEGIN{count=0;size=0;}\
- {count = count + 1; size = size +$1/1024;}\
- END{print “Toting count ” count;\
- print “Toting size “size/1024 ” GB” ;\
- print “Avg size “size / count “MB”}no
或者查找大于某个大小
- find.-size+100k -execls-l{}\;|awknoBEGIN{count=0;size=0;}\
- {count = count + 1; size = size +$5/1024/1024;}\
- END{print “Toting count ” count;\
- print “Toting Size “size/1024 ” GB” ;\
- print “Avg Size “size / count “MB”;\
- print”—”}no
find命令的文件大小选项含义
-size n[bckw] 查找文件长度为n块的文件,带有c时表示文件长度以字节计,k为kb
查找在什么时间之后的文件
- #对之前一天的文件做查找
- find.-mtime-1-execls-l{}\;|awknoBEGIN{count=0;size=0;}\
- {count = count + 1; size = size +$5/1024/1024;}\
- END{print “Toting count ” count;\
- print “Toting Size “size/1024 ” GB” ;\
- print “Avg Size “size / count “MB”;\
- print”—”}no
find命令的时间相关条件含义
-newer file1 !file2查找更改时间比文件file1新但比文件file2旧的文件。-mtime -n +n按照文件的更改时间来查找文件, -n表示文件更改时间距现在n天以内, +n表示文件更改时间距现在n天以前。vps服务器是什么 。还有-atime和-ctime选项 -atime 为接见文件的时间,学会linux vps 配置 。 -ctime 为改变文件形态的时间, -mtime 为修改文件内容的时间同时对应下面三个选项还有将time变为min的选项,他们的时间单位为分钟。 -in the morningin n查找系统中末了N分钟接见的文件-atime n查找系统中末了n*24小时接见的文件-cmin n查找系统中末了N分钟被改变文件形态的文件-ctime n查找系统中末了n*24小时被改变文件形态的文件 -mmin n查找系统中末了N分钟被改变文件数据的文件-mtime n查找系统中末了n*24小时被改变文件数据的文件
不妨始末 find 命令配合 awk 命令对符合条件的文件做汇总统计。http://www.weizhanqun.com/archives/180.html。
统计某文件夹下文件的个数
ls -l |grep “^-”|wc -l
统计某文件夹下目录的个数
ls -l |grep “^d”|wc -l
统计文件夹下文件的个数,包括子文件夹里的
ls -lR|grep “^-”|wc -l
如统计/home/han目录(包罗子目录)下的所有js文件则:
ls -lR /home/han|grep js|wc -l 或 ls -l “/home/han”|grep “js”|wc-l统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep “^d”|wc -l
ls -lR
长列表输入该目录下文件信息(R代表子目录注意这里的文件,http://www.weizhanqun.com。不同于一般的文件,可能是目录、链接、设备文件等)
grep “^-”
这里将长列表输入信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l
统计输入信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数.