例如,我如何列出 /usr/lib 目录中的五个最大文件?

例如,我如何列出 /usr/lib 目录中的五个最大文件?

例如,我如何列出/usr/lib目录中五个最大的文件?

还请为您正在使用的每一段代码添加一些小的解释。

答案1

最简单的方法是简单地按大小排序并打印最后 5 行:

ls -Sr /usr/lib | tail -n 5

man ls

   -r, --reverse
          reverse order while sorting
   -S     sort by file size

tail只打印文件的最后 N 行:

   -n, --lines=K
          output the last K lines, instead of the last 10; or use -n +K to
          output lines starting with the Kth

如果您还想检查子目录中的文件,您可以这样做:

find /usr/lib -type f -ls | sort -gk7 | tail -n 5

find命令查找文件,来自man find

   -type c
          File is of type c:
          [ ... ]
          f      regular file
   -ls    True;  list  current file in ls -dils format on standard output.
          The block counts are of 1K blocks, unless the environment  vari‐
          able  POSIXLY_CORRECT  is set, in which case 512-byte blocks are
          used.  See the UNUSUAL FILENAMES section for  information  about
          how unusual characters in filenames are handled.

sort做你所期望的,它对输入进行排序。从man sort

   -g, --general-numeric-sort
          compare according to general numerical value
   -k, --key=KEYDEF
          sort via a key; KEYDEF gives location and type

因此,排序-g使其按数字顺序排序,并-k7使其在第 7 个字段上排序,在 的情况下find -ls,该字段是文件的大小。

这应该相对稳健,并且对于带有空格或奇怪字符的文件名没有问题。无论如何,由于您正在搜索,/usr/lib因此不太可能出现奇怪的文件名。

答案2

LS-LSR| tail -5
这会起作用

-r 用于反向 -l 用于长列表 -S 是按文件大小排序的选项。

相关内容