列出驱动器上最大和最新的 20 个文件

列出驱动器上最大和最新的 20 个文件

我的磁盘已满,其中有许多大文件,因此我只想查找磁盘上最新和最大的 20 个文件。我怎样才能做到这一点?

答案1

zsh

ls -lrtd -- **/*(D.OL[1,20])

对于从最旧到最新排序的 20 个最大文件。

ls -lrtd -- **/*(D.OL[1,20]m-1)

相同,但仅限于最近 24 小时内最后修改的文件。最后一小时替换m-1为。mh-1

ls -lSd -- **/*(D.om[1,20])

最新的 20 个文件,按大小排序(从小到大)。

ls -lSd -- **/*(D.om[1,20]LM+100)

相同,但仅限于大于 100 MiB 的文件。

请注意,Lglob 限定符适用于表观尺寸文件的,而不是他们的磁盘使用情况(例如据报道du)。

答案2

查找最新的 20 个文件:

find . -type f -printf "%T@ %Tc %p\0" | sort -z -nr | head -z -n20

(改编自这里

找到最大的 20 个:

find . -type f -printf "%s %p\0" | sort -z -nr | head -z -n20

或者,更简单

du -ba0 | sort -nr | head -z -n20

如果您希望文件以换行符分隔而不是零分隔,则可能需要在| tr '\0' '\n'饼图末尾添加 at 。请注意,文件名可以包含换行符,因此这通常不是一个好主意;这就是为什么我在上面的所有示例中使用零字节分隔(文件名不能包含零字节)。

相关内容