使用bash skcript按目录中最后更改的文件对目录进行排序

使用bash skcript按目录中最后更改的文件对目录进行排序,bash,timestamp,directory,Bash,Timestamp,Directory,我已装载windows共享,希望忽略其中最低文件夹的时间戳 我想按目录或任何子目录中任何文件的修改日期对目录进行排序 这可能吗?我只需要第一级的目录列表。是的,这是可能的 我将为您提供解决方案的概要: 使用for循环在顶级目录上迭代(在zsh中,这与*(/)一样简单;在bash中,您可能需要类似find.-maxdepth 1-type d的内容 对于每个目录, 在目录上调用find-type f,使用-printf指定一个格式字符串,该格式字符串仅包含找到的文件的修改时间,后跟一个换行符 通过

我已装载windows共享,希望忽略其中最低文件夹的时间戳

我想按目录或任何子目录中任何文件的修改日期对目录进行排序

这可能吗?我只需要第一级的目录列表。

是的,这是可能的

我将为您提供解决方案的概要:

  • 使用
    for
    循环在顶级目录上迭代(在zsh中,这与
    *(/)
    一样简单;在bash中,您可能需要类似
    find.-maxdepth 1-type d
    的内容
  • 对于每个目录,
  • 在目录上调用
    find-type f
    ,使用
    -printf
    指定一个格式字符串,该格式字符串仅包含找到的文件的修改时间,后跟一个换行符
  • 通过管道将
    find
    的结果传送到
    sort-n
  • 排序的结果通过
    tail-1
    导入管道
  • 使用类似于
    echo$(find | sort | tail)$dirname
    ,输出在每个目录中找到的最高mtime,然后是目录名
  • 通过
    sort-t”“-k1,1-n | cut-d”“-f2-
  • 此解决方案取决于不包含换行符的目录名