我需要一个命令,它将在给定日期和时间(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
包含点文件))。