Grep文件在24小时内修改unix

时间:2016-04-21 11:13:54

标签: unix

我必须检查过去24小时内修改过的该文件的用户和所有者。我无法理解如何获取最近24小时内修改过的文件

-rw-r--r--  1 user user      186 Apr 11 08:05 Util-04-11.log.gz
-rw-r--r--  1 user user      185 Apr 12 08:05 Util-04-12.log.gz
-rw-r--r--  1 user user      186 Apr 13 08:05 Util-04-13.log.gz
-rw-r--r--  1 user user      186 Apr 14 08:05 Util-04-14.log.gz
-rw-r--r--  1 user user      278 Apr 20 08:05 Util-04-20.log

此命令的输出为:

DECLARE @query varchar(max);
SET @query= 'SELECT * FROM  Registry ORDER BY '+ (select TOP 1 sort from @sort)
EXEC(@query)

现在我要查看过去24小时内修改过的文件的用户和所有者。我们如何在unix中执行此操作。

2 个答案:

答案 0 :(得分:1)

您可以使用find过滤具有相应修改日期的文件。

从手册页:

find $HOME -mtime 0
  

搜索主目录中已修改的文件   过去二十四小时。此命令以这种方式工作,因为   自上次修改每个文件以来的时间除以24小时   任何余数都被丢弃。这意味着匹配-mtime 0,a   文件必须在过去进行修改,而不是更改   比24小时前。

考虑到这一点,您可以使用-exec选项来构建以下命令

find /dirpath -mtime 0 -exec stat -c "%n %U %G" '{}' \;

答案 1 :(得分:0)

您可以使用find命令指定创建时间少于一天(-ctime 0),然后使用xargs执行ls

find /dirpath -name "*Util*" -ctime 0 -type f |xargs ls -lrt

希望它有所帮助。