【发布时间】:2015-05-23 13:44:30
【问题描述】:
我想显示最近添加的 10 个目录,例如:
ls -tlh | head -20
但是,我还想在 du 中包含目录大小。但我似乎无法弄清楚如何仅获取 10 个最近添加的大小 - 查询所有目录将花费太长时间。
du --max-depth=1 | head -20
.. 似乎不起作用。所以我正在寻找一种方法来显示最近修改的 10 个目录的修改日期和目录大小。这可能吗?
【问题讨论】:
我想显示最近添加的 10 个目录,例如:
ls -tlh | head -20
但是,我还想在 du 中包含目录大小。但我似乎无法弄清楚如何仅获取 10 个最近添加的大小 - 查询所有目录将花费太长时间。
du --max-depth=1 | head -20
.. 似乎不起作用。所以我正在寻找一种方法来显示最近修改的 10 个目录的修改日期和目录大小。这可能吗?
【问题讨论】:
这将打印最近修改的 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 的手册页指出 "-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 做我需要的事情:)