【问题标题】:How to display directory size of the n most recent additions in bash如何在bash中显示n个最近添加的目录大小
【发布时间】:2015-05-23 13:44:30
【问题描述】:

我想显示最近添加的 10 个目录,例如:

ls -tlh | head -20

但是,我还想在 du 中包含目录大小。但我似乎无法弄清楚如何仅获取 10 个最近添加的大小 - 查询所有目录将花费太长时间。

du --max-depth=1 | head -20

.. 似乎不起作用。所以我正在寻找一种方法来显示最近修改的 10 个目录的修改日期和目录大小。这可能吗?

【问题讨论】:

    标签: linux bash find ls du


    【解决方案1】:

    这将打印最近修改的 10 个目录的目录大小:

    for dir in $(ls -t -c1 | head -20); do 
        echo $(du -sh $dir 2>/dev/null)
    done
    

    作为一个班轮:

    for dir in $(ls -t -c1 | head -20); do echo $(du -sh $dir 2>/dev/null) ; done
    

    【讨论】:

    • 这给了我与“ls | head -10”不同的输出;它确实为我提供了 10 个最新的目录。但上面的行给了我一个混合的日期,一些来自 2014 年和 2013 年。
    • 这很奇怪,ls 的手册页指出 "-t 按修改时间排序,最新在前" 所以来自 ls -t -c1 的结果应该按修改时间列出。 Plain ls 将按字母顺序打印结果
    • 我的意思是ls -tlh | head -20;但我只需将它添加到上面的行中就可以了;让for dir in $(ls -t | head -20); do echo $(du -sh $dir 2>/dev/null) ; done 做我需要的事情:)
    猜你喜欢
    • 2013-07-08
    • 1970-01-01
    • 2021-06-08
    • 2017-11-08
    • 2021-11-01
    • 1970-01-01
    • 2022-08-05
    • 2015-02-04
    • 2011-12-20
    相关资源
    最近更新 更多