我想确定从多个磁盘系统修改文件的所有权,大小和日期/时间。要确定基于上次修改日期修改的文件所有者,大小和日期/时间
有没有一种方法来递归搜索这些文件和目录,因为我知道的唯一解决方案是使用find的-mtime选项,并且它只返回基于指定日期范围的文件名/路径列表。我将需要修改所有权,大小和日期/时间。
我知道stat会给出一些后处理的详细信息,但是有没有其他选择可以有效地找到这些文件,并且在每个文件上需要我需要的信息,因为我必须处理跨越大文件/目录很多文件系统?
我想确定从多个磁盘系统修改文件的所有权,大小和日期/时间。要确定基于上次修改日期修改的文件所有者,大小和日期/时间
有没有一种方法来递归搜索这些文件和目录,因为我知道的唯一解决方案是使用find的-mtime选项,并且它只返回基于指定日期范围的文件名/路径列表。我将需要修改所有权,大小和日期/时间。
我知道stat会给出一些后处理的详细信息,但是有没有其他选择可以有效地找到这些文件,并且在每个文件上需要我需要的信息,因为我必须处理跨越大文件/目录很多文件系统?
随着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'
为了可读性和清晰度,我编辑了您的OP。
基于什么,我相信你的要求,你可以结合find
与ls
给你你在找什么:
find . -type f -mtime -3d -print0 | xargs -0 ls -la
上面的命令行语句会找出所有的文件不到三天的时间,因为修改并通过-la开关将输出传递给ls命令,为您提供完整的文件信息,如您所需。您可以摆弄语句的查找部分来识别实际的文件集,但后面的部分将始终为您提供有关文件的详细信息。
HI基数,感谢您的命令,您的答案也是我的一个选择,但我更喜欢直接grep,因为它正在为文件/目录减少吨数。我需要在不到半天的几分钟内执行,至少可以得出结果。谢谢! – Grace 2012-07-27 01:02:24
好点。我去xargs路线的唯一原因是他没有找到GNU的机会。无论如何,当他检查他的响应时,他应该很高兴;) – Radix 2012-07-26 20:29:06
@Radix只要我们在做可移植性笔记,我会补充说POSIX find不包括'-ls'和'-print0',尽管他们都是也存在于BSD中,'-ls'存在于Solaris中。 – 2012-07-26 20:33:40
我的大部分时间都花在FreeBSD上,所以你可以理解:) – Radix 2012-07-26 20:36:44