![명령 프롬프트에 디렉터리와 해당 크기를 어떻게 나열할 수 있나요?](https://rvso.com/image/1331441/%EB%AA%85%EB%A0%B9%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%EC%97%90%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%99%80%20%ED%95%B4%EB%8B%B9%20%ED%81%AC%EA%B8%B0%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%82%98%EC%97%B4%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
linux 명령과 비슷하게 폴더의 하위 폴더 크기를 보고 싶습니다 du -sh
. 명령 프롬프트에 디렉터리와 해당 크기를 어떻게 나열할 수 있나요?
답변1
시도해 보세요디스크 사용량Sysinternals의 유틸리티. 특히 du -l 1
현재 디렉터리의 각 하위 디렉터리 크기를 표시해야 합니다. 자세한 내용을 보려면 du
매개변수 없이 실행하세요.
PowerShell이 정상이면 다음을 시도해 보십시오.
Get-ChildItem |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
$_.Name + ": " + (
Get-ChildItem $_ -Recurse |
Measure-Object Length -Sum -ErrorAction SilentlyContinue
).Sum
}
크기는 바이트 단위입니다. MB와 같은 더 큰 단위로 형식을 지정하려면 다음을 시도해 보십시오(한 줄로 압축).
Get-ChildItem | Where-Object { $_.PSIsContainer } | ForEach-Object { $_.Name + ": " + "{0:N2}" -f ((Get-ChildItem $_ -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB" }
자세한 내용은 다음을 참조하세요.Technet의 이 기사.
보다 유연한 크기 형식 지정(실제 크기에 따라 kB/MB/GB/등 선택)을 원하는 경우 다음을 참조하세요.이 질문과 답변.
나는 일반 명령줄과 몇 가지 간단한 명령만으로는 원하는 것을 수행하는 것이 불가능하다고 생각합니다. 보다이 스크립트를 예로 들어(PowerShell을 사용할 수 없고 타사 유틸리티를 사용할 수 없는 경우를 제외하고는 해당 접근 방식을 추구할 가치가 없다고 생각하므로 여기에 복사하지 않겠습니다.)
답변2
du
나는 Linux에 대한 경험이 없습니다 . 하지만 Windows에서는 dir /s
파일 크기와 함께 모든 폴더와 하위 폴더를 나열하는 데 사용합니다 .
답변3
이는 다음의 수정 사항입니다.인드렉의 답변. 다음을 추가했습니다.
- 하위 디렉터리에서 더 멀리 이동하도록 재귀적으로 만들었습니다.
- 샘플러 디렉터리를 생략하기 위해 크기 임계값을 추가했습니다.
- 디렉토리 이름을 현재 디렉토리의 상대 경로로 바꿨습니다.
- 결과를 경로별로 정렬합니다. (이미 크기별로 필터링되어 있는 경우 크기별로 정렬하는 것보다 더 편리하다고 생각했습니다.)
- 결과를 더 읽기 쉽게 만들기 위해 일부 형식을 추가했습니다.
따라서 원하는 값을 설정하고 스크립트를 실행하십시오 $minsizeMB
.$maxdepth
$minsizeMB = 100;
$maxdepth = 5;
Get-ChildItem -depth $maxdepth -Recurse |
Where-Object { $_.PSIsContainer } |
Select-Object FullName |
Sort-Object FullName |
ForEach-Object {
$directory = Get-Item $_.FullName;
$path = Resolve-Path -Relative $directory.FullName ;
$size = ((Get-ChildItem $directory -Recurse | Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) ;
if ($size -ge $minsizeMB) { "{0,-90}: {1:N2} MB" -f ($path, $size) }
}