问题

  • 操作系统:Linux

  • 文件系统类型:ext3

  • 首选解决方案:bash(脚本/ oneliner),ruby,python

我有几个目录,其中包含几个子目录和文件.我需要以一种方式构建的所有这些目录的列表,以便每个第一级目录在其中最新创建/修改文件的日期和时间旁边列出.

为了澄清,如果我触摸文件或修改其内容的几个子目录级别,则应该在第一级目录名旁边显示时间戳.假设我有一个结构如下的目录:

 ./alfa/beta/gamma/example.txt
 

我修改了文件example.txt的内容,我需要在第一级目录alfa旁边显示时间,以人类可读的形式,而不是划时代.我已经尝试了一些使用find,xargs,sort和喜欢的东西,但我无法解决在创建/修改文件时’alfa’的文件系统时间戳不会改变的问题.

  最佳答案

尝试这个:

 #!/bin/bash
find $1 -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head
 

使用目录的路径执行它,它应该递归地开始扫描(它支持带空格的文件名)。

如果有很多文件,可能需要一段时间才能返回任何东西.如果我们使用xargs而不是:

 #!/bin/bash
find $1 -type f -print0 | xargs -0 stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head
 

这有点快

  相同标签的其他问题

linuxrecursiontimefilesystems