我想确定来自多个磁盘系统的文件的所有权、大小和修改日期/时间。
有没有办法递归搜索这些文件和目录,因为我知道的唯一解决方案是使用 find 的 -mtime 选项,它只返回基于指定日期范围的文件名/路径列表。我还需要修改所有权、大小和日期/时间。
我知道 stat 会通过一些后处理提供详细信息,但是是否有任何其他选项可以使用每个文件所需的信息有效地找到这些文件,因为我必须处理跨多个文件系统的巨大文件/目录?
我想确定来自多个磁盘系统的文件的所有权、大小和修改日期/时间。
有没有办法递归搜索这些文件和目录,因为我知道的唯一解决方案是使用 find 的 -mtime 选项,它只返回基于指定日期范围的文件名/路径列表。我还需要修改所有权、大小和日期/时间。
我知道 stat 会通过一些后处理提供详细信息,但是是否有任何其他选项可以使用每个文件所需的信息有效地找到这些文件,因为我必须处理跨多个文件系统的巨大文件/目录?
使用 GNU find,您可以使用该-ls
选项让 find 以类似的格式打印结果,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'
GNU 版本的 find 有 -user(对于所有者)、-size(对于文件大小)、-mtime(对于修改时间)。
难道这些选项不能为您提供您所需要的吗?
为了可读性和清晰度,我编辑了您的 OP。
根据我相信您的要求,您可以结合find
为ls
您提供所需的内容:
find . -type f -mtime -3d -print0 | xargs -0 ls -la
上面的命令行语句将识别自修改后不到三天的所有文件,并将输出通过 -la 开关通过管道传输到 ls 命令,以根据您的需要为您提供完整的文件信息。您可以摆弄语句的 find 部分来识别实际的文件集,但后面的部分将始终为您提供文件的详细信息。