我想编写一个需要以下功能的脚本:
列出过去 24 小时内创建的所有文件。如果我给出
find
带有选项的命令ctime
,那么它会列出所有已更改的文件(权限和获胜者)find . -ctime -1
但我需要过去 24 小时内创建的未修改或更改的新文件列表。
列出过去 24 小时内删除的所有文件。如果我删除了任何文件,那么我如何获取这些文件名。
如何获取文件的诞生时间(创建时间)。命令中有一种格式
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 小时内发生的情况不同创建或更改,你有两个选择:
find
1 切换到支持创建日期的文件系统,并使用和的组合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