在linux中查找两个文件夹日期之间的文件?

在linux中查找两个文件夹日期之间的文件?

我需要找到文件夹名称以及内容中包含我的字符串的文件名。我在这个目录“ /data/queue/data”中,在同一目录中有很多文件夹,在每个文件夹中,我有各种文件。

下面是该目录“ ”中的文件夹/data/queue/data,每个文件夹中都有各种文件。

david@machineA:/data/queue/data$ ls -lrth
drwxr-xr-x 2 david david  12K Apr 11 18:58 1428800400
drwxr-xr-x 2 david david  12K Apr 11 19:58 1428804000
drwxr-xr-x 2 david david  12K Apr 11 20:58 1428807600

我只想从这个目录运行命令 - “ /data/queue/data”,但它应该只找到时间戳为 from 的文件夹内的文件April 13th 3 AM to April 13th 9 AM

下面是我的命令,它将递归地查找所有文件夹内的文件,但我应该如何确保它只查找April 13th 3 AM to April 13th 9 AM文件夹中的文件?

david@machineA:/data/queue/data$ grep -rl "pcV6URY" /data/queue/data

做这个的最好方式是什么?

答案1

尝试这个:

touch -d"April 13 3 AM" file1
touch -d"April 13 9 AM" file2
find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +
rm file1 file2

怎么运行的

find可以直接处理时间,但touch可以更好地处理人类风格的日期:

  • touch -d"April 13 3 AM" file1; touch -d"April 13 9 AM" file2

    这将创建两个文件来标记时间范围的开始和结束。

  • find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +

    这会查找比 更新file1但不更新的文件file2。对于所有此类文件,它会grep在它们上运行以查看它们是否包含您的字符串。

相关内容