Files

例如,我如何在 /usr/lib 目錄中列出五個最大的文件?

  • November 19, 2013

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

還請為您正在使用的每一位程式碼添加一些小的解釋。

最簡單的方法是簡單地按大小排序並列印最後 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

因此, sort-g使其按數字順序排序,並-k7使其在第 7 個欄位上排序,在 的情況下find -ls,它是文件的大小。

這應該是相對健壯的,並且對於帶有空格或奇怪字元的文件名沒有問題。無論如何,由於您正在搜尋,/usr/lib因此您不太可能有奇怪的文件名。

引用自:https://unix.stackexchange.com/questions/101279