linux下统计文件数目 linux统计指定时间的文件总数

时间:2024-03-07 20:58:14

第一种方法:
ls -l|grep "^-"|wc -l 
ls -l 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)。如果ls -lR|grep "^-"|wc-l则可以连子目录下的文件一起统计。
grep ^- 这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d 
wc -l 统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。

第二种方法:

find ./ -type f|wc -l 由于默认find会去子目录查找,如果只想查找当前目录的文件用find ./ -maxdepth 1 -type f|wc -l即可。

需要说明的是第二种方法会比第一种方法快很多,尤其是也统计子目录时。

 

 

 

 

由于工作原因,需要统计某目录下atime时间大于365天的文件,google搜索之后,发现find命令异常强大。

find 有个-exec参数可以实现我需要的功能:

find . -atime +365 -exec ls -l {} \; | grep "^-" | wc -l

参数说明:

find . -atime +365 网上有答案;

-exec:表示执行后面的命令;

ls -l:略过;

{} \; :表示前面find...找到的结果;

 grep "^-": 过滤,只保留文件;

wc -l: 统计数目;