请求只是特定目录中文件的基本计数。 我目前使用ipswitch
的过程:
- 将 3 月份的文件复制到我的本地目录 (Windows)
- 按名称排序,如有必要,删除我不需要计数的文件(从我的本地)
- 选择所有或特定文件,查看总数,然后将其输入到我维护的电子表格中。
该电子表格用于每月报告可交付成果...
我知道一些 unix/linux 基础知识,比如目录导航,一些关于 grep,几乎没有关于查找的内容。
我不知道如何在目录中搜索特定日期范围内的文件,按月,并计算有多少文件......有时具有特定名称或扩展名。 我以为
ls -l |grep ...something something...
也许有效,但我碰壁了。
如果需要更多信息,请告诉我,对不起,太罗嗦了。
您还可以使用-newerXY
选项find
直接在两个日期之间的目录中(和下方)搜索文件。日期格式可以包括保真度低至秒的时间(例如"2017-04-13 21:35:58"
或一般"yyyy-mm-dd h:m:s"
)
该选项的通用形式是-newerXY
其中XY
可以是a
访问时间、B
诞生时间c
索引节点状态更改时间m
修改时间之一,t
直接解释为时间。
要在两个给定日期(例如 2016 年 11 月)之间进行搜索,您可以使用类似于以下内容的find
形式:
find /path/to/files -type f -newermt "2016-10-30 23:59:59"
! -newermt "2016-12-01 00:00:00"
这将列出 2016 年 10 月底到 2016 年 12 月初之间的所有文件(例如,2016 年 11 月修改的所有文件),其中
-type f
将查找限制为"文件"而不是"文件和目录">-newermt "2016-10-30 23:59:59"
10 月最后一秒后修改的文件! -newermt "2016-12-01 00:00:00"
,并且在 11 月的最后一秒后未修改
当然,''
只是一个行连续符,用于在日期测试之间拆分行,因此它不会在此答案中生成水平滚动条——您可以省略它并将所有内容放在一行上。
如果您需要计算文件,只需将输出通过管道传输到wc -l
,如 phatfingers 在他之前的答案中所示。对文件进行日期排序的一种简单方法是简单地在命令替换中使用find
作为ls -t
的参数(以及您可能希望的任何其他ls
选项),例如:
$ ls -lrt $(find . -newermt 2016-10-30 ! -newermt 2016-12-01)
-rw-r--r-- 1 david david 3180 Nov 9 13:02 ./inventory2.c
-rw-r--r-- 1 david david 769 Nov 19 23:00 ./xfree.c
-rw-r--r-- 1 david david 1375 Nov 20 16:14 ./reallocprob.c
-rw-r--r-- 1 david david 98 Nov 21 00:39 ./hw.c
-rw-r--r-- 1 david david 530 Nov 25 23:10 ./tools2/tools.c
-rw-r--r-- 1 david david 1175 Nov 25 23:15 ./tools2/main.c
-rw-r--r-- 1 david david 174 Nov 25 23:16 ./tools2/tools.h
-rw-r--r-- 1 david david 424 Nov 26 00:28 ./tools/tsave.c
-rw-r--r-- 1 david david 106 Nov 26 01:34 ./tools/tools.h
-rw-r--r-- 1 david david 909 Nov 26 01:53 ./tools/main.c
-rw-r--r-- 1 david david 525 Nov 26 02:45 ./tools/tools.c
-rw-r--r-- 1 david david 1732 Nov 27 23:53 ./nogets.c
-rw-r--r-- 1 david david 530 Nov 30 22:17 ./resolution.c
您可以使用find
进行筛选,wc
进行计数。
find . -mtime -$start -mtime +$end | wc -l
由于 -mtime 修剪的方式以及比较的排他性,一开始要正确有点棘手,但可行。
find /some/path -mtime +0 # Find files modified prior to 1 day ago.
find /some/path -mtime -0 # Find files modified after 1 day ago.
find /some/path -mtime +1 -mtime -6 # Files modified between 2 and 7 days ago.
例如,假设是 4 月 2 日,而您希望整个 3 月。 你的$start会31
,你的$end会0
。
要在 4 月 13 日运行相同的报告,您的$start将是42
,您的$end将是13
。