Linux 无需 touch 命令即可列出两个日期之间的文件

Linux 无需 touch 命令即可列出两个日期之间的文件

我需要一个命令,它将在给定日期和时间(YYYYMMDDHHMMSS - 格式)之间列出文件到文本文件中。

我不想使用 touch 命令作为其创建权限问题。

答案1

touch如果您有最新版本的 GNU find(>= v4.3.3 ),则不需要使用。这样你就可以这样做:

find /media/WD/backup/osool/olddata/ -newermt 20120101T1200 -not -newermt 20130101T1400

请注意T日期和时间之间的关系。

如果您想重试使用:touch创建参考文件-newer,您可以将它们放在可以写入 ( /var/tmp?) 的任何位置,只要您指定 的完整路径即可-newer。所以你可能仍然会找到一个你有权限的地方。

答案2

zsh

autoload age
ls -ldrt -- **/*(e{age 2013/03/06:13:20:00 2013/05/18:11:00:00})

看:

info -f zsh --index-search=age

了解详情。

(请注意,它的效率会比 Anthon 的 GNU find 解决方案低很多,因为它会解析这些日期,lstat对每个文件执行 2 秒并对文件列表进行排序(您可以通过添加到oN通配符限定符列表中来避免最后一部分;用于D包含点文件))。

相关内容