파일 유형별로 디스크 사용량을 표시하는 방법은 무엇입니까? 들어, 터미널을 사용하여 .psd드라이브

기본적으로 드라이브의 모든 디스크 공간이 어디에서 사용되고 있는지 궁금합니다. 파일 유형별로 분석하고 싶습니다.

예를 들어, 터미널을 사용하여 .psd드라이브 의 파일 이 얼마나 많은 공간을 사용하고 있는지 확인하고 싶습니다 .

그런 일을 할 수있는 방법이 있습니까?



답변

이 시도:

find . -iname '*.psd' -print0 | du -ch --files0-from=-
  • find . -iname '*.psd' 확장명으로 끝나는 모든 파일을 찾습니다. psd
  • -print0 줄 바꿈 대신 파일 이름 뒤에 널 문자를 인쇄합니다.
  • | du -ch --files0-from=-파일 이름을 가져와 find디스크 사용량을 계산합니다. 옵션은 다음 du과 같습니다.
    • stdin ( --files0-from=-) 에서 널 문자로 구분 된 파일 이름의 디스크 사용량을 계산합니다 .
    • 사람이 읽을 수있는 형식 ( -h) 으로 인쇄 크기
    • 끝에 합계를 인쇄하십시오 ( -c).

.psd디스크 사용량을 찾으려는 파일 형식으로 변경하십시오 .


답변

보다 일반적으로 find및 조합을 사용하여 awk선택한 규칙에 따라 디스크 사용량 그룹을보고 할 수 있습니다. 파일 확장자별로 그룹화하는 명령은 다음과 같습니다 (최종 기간 이후에 나타나는 것).

# output pairs in the format: `filename size`.
# I used `nawk` because it's faster.
find -type f -printf '%f %s\n' | nawk '
  {
    split($1, a, ".");       # first token is filename
    ext = a[length(a)];      # only take the extension part of the filename
    size = $2;               # second token is file size
    total_size[ext] += size; # sum file sizes by extension
  }
  END {
    # print sums
    for (ext in total_size) {
      print ext, total_size[ext];
    }
  }'

다음과 같은 것을 생산할 것입니다

wav 78167606
psd 285955905
txt 13160


답변

그래, 할 수있어 터미널에서 파일을 검색하는 구문은 다음과 같습니다.

Syntax   :   find foldername -iname '.filetype' -size size

Example  :   find $HOME -iname '*.mp3' -size +1M

시나리오의 경우 다음과 같아야합니다

find $HOME -iname '*.psd' -size +0M

자세한 내용은 공식 문서를 참조 하십시오 .


답변