예를 들어, /usr/lib 디렉토리에 있는 가장 큰 파일 5개를 어떻게 나열합니까?

예를 들어, /usr/lib 디렉토리에 있는 가장 큰 파일 5개를 어떻게 나열합니까?

/usr/lib예를 들어 디렉터리에서 가장 큰 파일 5개를 어떻게 나열합니까 ?

또한 사용 중인 각 코드에 대한 간단한 설명을 추가하세요.

답변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숫자순으로 정렬하고 -k77번째 필드에 정렬하도록 합니다. 이 경우에는 find -ls파일 크기입니다.

이는 상대적으로 강력해야 하며 공백이나 이상한 문자가 포함된 파일 이름에는 문제가 없습니다. 어쨌든, 검색 중이기 때문에 /usr/lib이상한 파일 이름이 나올 가능성은 거의 없습니다.

답변2

LS-LSR| tail -5
이것이 작동합니다

-r 역방향 -l 긴 목록 -S는 파일 크기별로 정렬하는 옵션입니다.

관련 정보