欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

find 查找当前目录及其子目录中最近100分钟内创建的文件 AG chatgpt 有大用

在Linux中查找最近100分钟内创建的文件

您想使用 find 命令查找当前目录及其子目录中最近100分钟内创建的文件。需要注意的是:

正确方法

bash
find ./ -ctime -100m

或者更精确的时间控制:

bash
find ./ -cmin -100

重要说明

  1. 关于创建时间查找的局限性

  • Linux文件系统通常不记录精确的"创建时间"(birth time),只有部分现代文件系统(如ext4、btrfs等)支持。

  • 大多数情况下,我们只能查找文件的"状态改变时间"(ctime)或"修改时间"(mtime)

  • 各时间类型的区别

    • -atime/-amin:访问时间(最后一次读取)

    • -mtime/-mmin:修改时间(内容修改)

    • -ctime/-cmin:改变时间(元数据改变,包括权限、所有者等变化)

  • 如果您确实需要查找真正"创建"的文件

    bash
    find ./ -type f -printf "%C+ %p\n" | sort

    然后手动检查时间(这只在支持birth time的文件系统有效)

  • 替代方案

    如果您的系统支持birth time,可以尝试:

    bash
    find ./ -type f -newerBt "100 minutes ago"

    或者使用更现代的替代工具fd(比find更快):

    bash
    fd --changed-within 100m .

    实际应用示例

    1. 查找并列出详细信息:

      bash
      find ./ -cmin -100 -ls
    2. 只查找常规文件(排除目录):

      bash
      find ./ -type f -cmin -100
    3. 查找并复制到另一个目录:

      bash
      find ./ -cmin -100 -exec cp {} /target/directory \;

    记住,在大多数Linux系统上,您实际上找到的是"最近发生变化的文件"而非严格意义上的"最近创建的文件"。


    普通分类: