欢迎各位兄弟 发布技术文章
这里的技术是共享的
您想使用 find
命令查找当前目录及其子目录中最近100分钟内创建的文件。需要注意的是:
bashfind ./ -ctime -100m
或者更精确的时间控制:
bashfind ./ -cmin -100
关于创建时间查找的局限性:
Linux文件系统通常不记录精确的"创建时间"(birth time),只有部分现代文件系统(如ext4、btrfs等)支持。
大多数情况下,我们只能查找文件的"状态改变时间"(ctime)或"修改时间"(mtime)
各时间类型的区别:
-atime/-amin
:访问时间(最后一次读取)
-mtime/-mmin
:修改时间(内容修改)
-ctime/-cmin
:改变时间(元数据改变,包括权限、所有者等变化)
如果您确实需要查找真正"创建"的文件:
bashfind ./ -type f -printf "%C+ %p\n" | sort
然后手动检查时间(这只在支持birth time的文件系统有效)
如果您的系统支持birth time,可以尝试:
bashfind ./ -type f -newerBt "100 minutes ago"
或者使用更现代的替代工具fd
(比find更快):
bashfd --changed-within 100m .
查找并列出详细信息:
bashfind ./ -cmin -100 -ls
只查找常规文件(排除目录):
bashfind ./ -type f -cmin -100
查找并复制到另一个目录:
bashfind ./ -cmin -100 -exec cp {} /target/directory \;
记住,在大多数Linux系统上,您实际上找到的是"最近发生变化的文件"而非严格意义上的"最近创建的文件"。