【问题标题】:sort directories by last changed files inside using bash skript使用 bash 脚本按最后更改的文件对目录进行排序
【发布时间】:2014-09-09 21:08:25
【问题描述】:

我已经挂载了一个 Windows 共享,想忽略其中最底层文件夹的时间戳。

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

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

【问题讨论】:

    标签: bash timestamp directory


    【解决方案1】:

    是的,有可能。

    我会给你一个解决方案的大纲:

    1. 使用for 循环遍历顶级目录(在zsh 中,这就像*(/) 一样简单;在bash 中,您可能需要find . -maxdepth 1 -type d 之类的东西。
    2. 对于每个目录,
      1. 在目录上调用find -type f,使用-printf 指定格式字符串,该字符串仅包含找到的文件的修改时间,后跟换行符。
      2. find 的结果传送到sort -n
      3. sort 的结果传送到tail -1
      4. 使用 echo $(find | sort | tail) $dirname 之类的东西,输出在每个目录中找到的最高 mtime,然后是目录的名称。
    3. 将上述循环的结果通过sort -t" " -k1,1 -n | cut -d" " -f2- 管道化

    此解决方案取决于不包含换行符的目录名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 2021-10-28
      • 1970-01-01
      • 2021-12-16
      • 2017-04-08
      • 2017-01-24
      • 2010-12-17
      • 2017-04-12
      相关资源
      最近更新 更多