确定基于上次修改日期修改的文件所有者,大小和日期/时间

时间:2012-07-26 08:22:01

标签: unix

我想确定从多个磁盘系统修改文件的所有权,大小和日期/时间。

有没有办法以递归方式搜索这些文件和目录,因为我知道的唯一解决方案是使用find的-mtime选项,并且只返回基于指定日期范围的文件名/路径列表。我还需要修改所有权,大小和日期/时间。

我知道stat会通过一些后处理给出详细信息,但是有没有其他选项可以有效地找到这些文件,并且每个文件都需要我需要的信息,因为我必须处理很多文件/目录。文件系统?

3 个答案:

答案 0 :(得分:1)

使用GNU查找,您可以使用-ls选项查找以类似于ls -isl的格式打印结果,或使用-printf选项准确选择所需的字段。例子:

find . -type f -mtime -3 -ls

find . -type f -mtime -3 -printf 'owner=%u (uid %U) size=%s bytes modified=%t name=%p\n'

答案 1 :(得分:0)

find的GNU版本包含-user(用于所有者), - size(用于文件大小), - mtime(用于修改时间)。

这些选项难道不能满足您的需求吗?

答案 2 :(得分:0)

为了便于阅读和清晰,我编辑了您的OP。

根据我认为您的要求,您可以将findls结合使用,以便为您提供所需内容:

find . -type f -mtime -3d -print0 | xargs -0 ls -la

上面的命令行语句将识别自修改后不到三天的所有文件,并使用-la开关将输出传递给ls命令,以便为您提供完整的文件信息,如您所示。您可以使用语句的查找部分来识别实际文件集,但后面部分将始终为您提供文件的详细信息。