cla*_*amp 44 recursive timestamps files
如何递归列出在 22.12.2011 和 24.12.2011 之间更改的所有文件?
Tru*_*ueY 42
使用 Gilles 的解决方案并再次阅读man find(1)后,我找到了一个更简单的解决方案。最好的选择是 -newerXY。可以使用 m 和 t 标志。
m The modification time of the file reference
t reference is interpreted directly as a time
Run Code Online (Sandbox Code Playgroud)
所以解决办法是
find . -type f -newermt 20111222 \! -newermt 20111225
Run Code Online (Sandbox Code Playgroud)
下限包含,上限不包含,所以我加了1天!它是递归的。它在 find v4.5.9 上运行良好。
Gil*_*il' 29
一般来说,当您递归查找目录及其子目录中的文件时,请使用find
.
指定日期范围的最简单方法find
是在范围的边界处创建文件并使用-newer
谓词。
touch -t 201112220000 start
touch -t 201112240000 stop
find . -newer start \! -newer stop
Run Code Online (Sandbox Code Playgroud)
stu*_*ent 18
除了已经给出的答案,请注意,您可以直接指定日期:
find -type f -newermt "2011-12-22" \! -newermt "2011-12-24"
Run Code Online (Sandbox Code Playgroud)
或者
find -type f -newermt "2011-12-22 00:00:00" \! -newermt "2011-12-24 13:23:00"
Run Code Online (Sandbox Code Playgroud)
如果您还想指定时间。
假设您不需要精确到秒,这应该有效。
find . -type f -mmin -$(((`date +%s`-`date -d 20111222 +"%s"`)/60)) \! -mmin +$(((`date +%s`-`date -d 20111224 +"%s"`)/60))
Run Code Online (Sandbox Code Playgroud)
编辑:更改cmin
为mmin
@Eelvex 评论后。
编辑: '\!' 丢失的
归档时间: |
|
查看次数: |
80829 次 |
最近记录: |