gpt4 book ai didi

linux - 如何使用 bash 在命令行上计算日期范围内的特定文件数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:12 25 4
gpt4 key购买 nike

请求只是特定目录中文件的基本计数。我当前使用 ipswitch 的过程:

  1. 将 3 月份的文件复制到我的本地目录 (Windows)
  2. 按名称排序,如有必要,删除我不需要计数的文件(从我的本地)
  3. 选择所有或特定文件,查看总数,然后将其输入到我维护的电子表格中。

电子表格用于每月报告可交付成果...

我知道一些 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 inode 状态改变时间 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 将查找限制为"file"而不是“文件和目录”
  • -newermt "2016-10-30 23:59:59" 十月最后一秒后修改的文件
  • ! -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

关于linux - 如何使用 bash 在命令行上计算日期范围内的特定文件数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43396415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com