디렉터리 및 하위 디렉터리에서 가장 큰 파일을 찾는 가장 빠른 방법

디렉터리 및 하위 디렉터리에서 가장 큰 파일을 찾는 가장 빠른 방법

현재 디렉토리와 후속 디렉토리에서 가장 큰 파일을 찾아야 합니다. 나는 노력했다

ls -Rlh | awk '{print $3 " " $5 " " $9}' 

하지만 괜찮은지, 가장 큰 파일을 정렬하고 선택하는 방법을 모릅니다.

답변1

암소 비슷한 일종의 영양find+sort+head파일 경로에 개행 문자가 포함되어 있지 않다고 가정하여 (모든 디렉터리 깊이 수준에 대한) 솔루션:

find . -type f -printf "%s %p\n" | sort -nr | head -1
  • %s- 파일 크기(바이트)를 가리키는 형식 지정자
  • %p- 파일 이름을 가리키는 형식 지정자
  • sort -nr- 기록을 역순으로 숫자별로 정렬
  • head -1- TOP 첫 번째 줄/레코드를 인쇄합니다.

얻으려면사람이 읽을 수 있는파일 크기 값 - GNU 명령으로 파이프라인을 확장합니다 numfmt(지원되는 경우):

find . -type f -printf "%s %p\n" | sort -nr | head -1 | numfmt --to=si

답변2

를 사용하면 zsh가장 큰 일반 파일의 경우:

ls -ld -- **/*(.DOL[1])

(물론 ls -ld --어떤 명령으로든 바꿀 수 있습니다. GNU ls또는 호환 버전을 사용하는 경우 -h옵션도 참조하세요.사람이 읽을 수 있는 크기)

  • .: 오직정기적인파일(디렉토리, 심볼릭 링크, 장치, fifo 등이 아님...)
  • D: 숨겨진 항목을 포함하고 숨겨진 디렉토리로 내려갑니다.
  • OL: 크기( Length)에 따라 역순으로 정렬됩니다.
  • [1]: 첫 번째 일치만 해당됩니다.

동점인 경우 무작위로 하나를 얻게 됩니다. 첫 번째 항목을 알파벳순으로 원할 경우 추가 항목 on( order by name)을 추가하여 동점을 알파벳순으로 정렬하세요.

관련 정보