如何获取过去 24 小时内新创建(未更改或修改)和删除的文件

如何获取过去 24 小时内新创建(未更改或修改)和删除的文件

我想编写一个需要以下功能的脚本:

  1. 列出过去 24 小时内创建的所有文件。如果我给出find带有选项的命令ctime,那么它会列出所有已更改的文件(权限和获胜者)

    find . -ctime -1

    但我需要过去 24 小时内创建的未修改或更改的新文件列表。

  2. 列出过去 24 小时内删除的所有文件。如果我删除了任何文件,那么我如何获取这些文件名。

  3. 如何获取文件的诞生时间(创建时间)。命令中有一种格式stat给出文件的诞生时间

    %w Time of file birth, human-readable; - if unknown

    %W Time of file birth, seconds since Epoch; 0 if unknown

abc@123:# stat -c %w tzls.txt
-
abc@123:#

但它没有给出任何输出。我的linux文件系统是ext3。

答案1

您无法在许多 Linux 文件系统上直接执行此操作,因为“created”属性根本不存在。您可能想阅读其中一些链接

如果您确实需要查找已被删除的文件已创建在过去 24 小时内,与过去 24 小时内发生的情况不同创建或更改,你有两个选择:

find1 切换到支持创建日期的文件系统,并使用和的组合stat --format '%w'来获取此类文件的列表

2find / -type f每 24 小时运行一次,并将当前运行结果与上次运行结果进行比较。像这样的东西可以工作,每 24 小时运行一次:

#!/bin/bash
#
test -f /tmp/today && mv -f /tmp/today /tmp/yesterday
find / -type f | sort > /tmp/today
test -f /tmp/yesterday && comm -13 /tmp/yesterday /tmp/today

相关内容