Як я можу перерахувати каталоги та їх розміри в командному рядку?


15

Я хотів би бачити розміри підпапок у папці, подібні до du -shкоманди Linux . Як я можу перерахувати каталоги та їх розміри в командному рядку?


PS Я вважав це безкоштовне програмне забезпечення корисним також windirstat.info
giorgio79


Дякую за вказівку du -sh- я використовую cmder у Windows, і він працював добре.
jbaums

Відповіді:


19

Спробуйте утиліту Disk Usage від 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 не доступний і сторонні утиліти не прийнятні).


Виглядає чудово. Почекаємо трохи, щоб побачити, чи є рідний спосіб зробити це в командному рядку :)
giorgio79

@ giorgio79 Дивіться оновлену відповідь. Це можливо зробити в командному рядку, але я б рекомендував використовувати Disk Usage або використовувати PowerShell.
Індрек

0

Я не маю досвіду роботи duв Linux. Але у Windows я використовую dir /sдля переліку всіх папок і підпапок разом із розмірами файлів.


1
/SПеремикач не вказує розміри каталогів, він просто робить команда рекурсивно пройти через всі підкаталоги.
Індрек

3
Подивіться уважно, він також показує розмір кожної папки. Хоча це не дуже читабельно.
Анкіт

Так, я бачу, що ви маєте на увазі - під переліком файлів кожного підкаталогу відображається загальний розмір усіх файлів у цьому каталозі. Як ви говорите, читати це не дуже просто, і розміри не відображаються рекурсивно.
Індрек
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.