Windows PowerShell에서 용량 잡아먹는 파일·폴더 찾기
Windows PowerShell에서 용량 잡아먹는 파일·폴더 찾기
사용 상황
지정한 폴더 안에서 큰 파일과 하위 폴더의 합계를 읽기 전용으로 조사합니다.
적용 환경과 권한
Windows PowerShell 5.1 기준. Windows 시스템 cmdlet은 Windows 환경이 필요합니다. 일반 사용자 권한에서 시작하고 접근 실패는 메시지로 확인합니다. PowerShell 7 호환성은 별도 실행하지 않았습니다.
명령
$scanRoot = (Get-Location).Path
$scanErrors = @()
Get-ChildItem -LiteralPath $scanRoot -Recurse -File -Force -ErrorAction SilentlyContinue -ErrorVariable +scanErrors |
Sort-Object Length -Descending |
Select-Object -First 10 FullName, @{N='MiB';E={[math]::Round($_.Length/1MB,2)}}
Get-ChildItem -LiteralPath $scanRoot -Directory -Force | ForEach-Object {
$sum = (Get-ChildItem -LiteralPath $_.FullName -Recurse -File -Force -ErrorAction SilentlyContinue -ErrorVariable +scanErrors |
Measure-Object Length -Sum).Sum
[PSCustomObject]@{Folder=$_.FullName; MiB=[math]::Round($sum/1MB,2)}
} | Sort-Object MiB -Descending
"읽지 못한 항목 수: $($scanErrors.Count)"경로·주소·패키지·포트는 자신의 대상에 맞게 지정합니다. 예제에 있는 기존 파일 보호 조건은 유지하세요.
출력과 해석 — 설명용
설명용: big.bin=3 MiB, small.bin=1 MiB, 폴더 합계=4 MiB. 같은 항목을 두 번 탐색하므로 오류 개수는 서로 다른 파일 수가 아닙니다.
여기 적은 출력은 설명용입니다. 실제 격리 실행 범위와 결과는 아래 검증 기록을 기준으로 판단하세요.
검수 기준
- 탐색 범위가 원하는 폴더인가
- 접근 실패를 누락된 용량으로 해석하지 않는가
- 파일 길이와 디스크 실제 할당 공간의 차이를 이해하는가
실패 시 수정과 복구
전체 드라이브는 오래 걸릴 수 있으므로 좁은 범위부터 조사한다. 링크·정션·압축·하드 링크 때문에 합계가 실제 점유와 다를 수 있다. 결과가 크다는 이유만으로 삭제하지 않는다. 읽기 전용이므로 되돌릴 설정은 없다.
검증 환경·검증일·출처
검토일: 2026-10-10.
실행 범위: 크기가 정해진 임시 파일 2개와 공백·대괄호 경로에서 상위 파일·합계 검증.
명령 인자 안내: LiteralPath는 경로 문자를 그대로 취급합니다. ErrorAction Stop은 처리 가능한 오류를 예외로 중단시킵니다. 조회 결과 없음과 실패는 동일하지 않습니다.
이 글이 도움이 되었나요?
댓글 0개
아직 댓글이 없습니다.
