Emi*_*ile 1 linux bash grep date count
该请求只是特定目录中文件的基本计数。我当前的流程使用ipswitch:
该电子表格用于每月报告可交付成果...
我了解一些 UNIX/Linux 基础知识,例如目录导航,了解一些 grep,但对 find 几乎一无所知。
我不知道如何在特定日期范围内按月搜索目录中的文件,并计算有多少文件......有时具有特定名称或扩展名。我想
ls -l |grep ...something something...
Run Code Online (Sandbox Code Playgroud)
可能有用,但我已经碰壁了。
如果需要更多信息,请告诉我,抱歉这么啰嗦。
您还可以使用该-newerXY选项find直接搜索两个日期之间的目录内(及其下方)的文件。日期格式可以包括精确到秒的时间(例如"2017-04-13 21:35:58"或一般"yyyy-mm-dd h:m:s")
该选项的通用形式是-newerXY其中XY可以是a访问时间、B出生时间、cinode状态更改时间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"
Run Code Online (Sandbox Code Playgroud)
这将列出 2016 年 10 月末到 2016 年 12 月初之间的所有文件(例如 2016 年 11 月修改的所有文件),其中
-type f将查找限制为“文件”而不是“文件和目录”-newermt "2016-10-30 23:59:59"十月最后一秒后修改的文件! -newermt "2016-12-01 00:00:00"11 月最后一秒后未修改当然,这'\'只是一个行继续字符,用于在日期测试之间分割行,因此它不会在此答案中生成水平滚动条 - 您可以省略它并将所有内容放在一行上。
如果您需要对文件进行计数,只需将输出通过管道传输到wc -lphatfingers 在他之前的答案中显示的那样。对文件进行日期排序的一种简单方法是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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9584 次 |
| 最近记录: |