포스트

우분투 가장큰 파일 찾아서 정렬하기

우분투 가장큰 파일 찾아서 정렬하기
1
find ./ -type f -print0 | xargs -0 du -h | sort -rh | head -30

명령어 세부 설명

  1. find ./ -type f -print0:
    • 역할: 현재 디렉터리(./)와 그 아래 있는 모든 일반 파일을 찾습니다.
    • -type f: 일반 파일만 선정합니다. 디렉터리나 심볼릭 링크는 포함되지 않습니다.
    • -print0: 각 파일 이름 뒤에 널 문자(\0)를 추가하여 출력합니다. 이는 파일명에 공백이나 특수 문자가 포함되어 있어도 안전하게 처리하도록 합니다.
    • 예시 출력 (널 문자로 구분됨, 시각적으로 보이지 않음):
      • ./videos/movie.mp4\0./backup/archive.tar.gz\0./music/album.zip\0...
  2. xargs -0 du -h:
    • 역할: find 명령어로 출력된 파일 이름을 받아 각 파일의 디스크 사용량을 사람이 읽기 쉬운 형식으로 구합니다.
    • xargs -0: 널 문자로 구분된 파일 이름을 적절하게 해석합니다.
    • du -h: 각 파일의 크기를 인식 가능한 단위(KB, MB, GB 등)로 출력합니다.
    • 예시 출력:
      1
      2
      3
      4
      
      256M    ./music/album.zip
      3.4K    ./documents/note.txt
      1.2G    ./backup/archive.tar.gz
      2.5G    ./videos/movie.mp4
      
      • 각 파일의 크기와 경로가 출력됩니다.
  3. sort -rh:
    • 역할: 파일 크기 기준으로 내림차순으로 정렬합니다.
    • -r: 내림차순으로 정렬합니다.
    • -h: 사람이 읽기 쉬운 형식의 데이터를 올바르게 비교하여 정렬합니다.
    • 정렬 후 예시 출력:
      1
      2
      3
      4
      
      2.5G    ./videos/movie.mp4
      1.2G    ./backup/archive.tar.gz
      256M    ./music/album.zip
      3.4K    ./documents/note.txt
      
      • 내림차순으로 가장 큰 파일이 가장 위에 배치됩니다.
  4. head -30:
    • 역할: 상위 30개 파일만 표시합니다.
    • 최종 예시 출력:
      1
      2
      3
      4
      
      2.5G    ./videos/movie.mp4
      1.2G    ./backup/archive.tar.gz
      256M    ./music/album.zip
      (더 많은 결과 생략)
      
      • 출력 결과 중 가장 큰 30개 파일의 정보만 보이게 됩니다.

참고사항: -k 옵션

  • -k1 생략 가능:
    • sort 명령어에서 -k1 옵션은 첫 번째 필드를 정렬 기준으로 삼지만, 기본 동작이 이미 첫 번째 필드를 기준으로 정렬하기 때문에 따로 지정할 필요가 없습니다.
    • 따라서 sort -rh는 충분히 기능을 수행합니다.

이 명령어를 통해 사용자는 파일 시스템 내에서 가장 많은 공간을 차지하는 파일을 신속하게 파악하고 대처할 수 있어, 디스크 공간 관리에 효과적입니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.