如何在 cli 中列出日期范围内的文件

如何在 cli 中列出日期范围内的文件

请告诉正确的人在 cli 上列出日期范围内的文件吗?假设在 2 月 20 日到 3 月 2 日之间,然后将这些文件转移到另一个目录。

谢谢

答案1

对于find没有的实现-newerct(较旧的 GNUfindfindBSD 系统):

创建两个时间戳文件并用于find查找比最旧的文件更新和比最新的文件更旧的所有文件:

touch -d 2018-02-20T00:00:00 ts-start
touch -d 2018-03-03T00:00:00 ts-end

find . -type f -newer ts-start ! -newer ts-end ! -name ts-end -exec mv {} /destination ';'

rm -f ts-start ts-end

我们必须排除ts-end文件名,因为该文件满足条件。

答案2

find -newerct "20 Feb 2018" ! -newerct "2 Mar 2018" -exec mv {} /path/to/target/dir

这使用了 GNU find 最新版本中引入的功能。

有很多其他方法可以完成同样的事情find。请参阅该页面以获取有关和其他好东西man的信息 。-newerxy-mtime

相关内容