چگونه می توان اندازه کل یک فهرست (پوشه) را از خط فرمان تعیین کرد؟


به جواب پذیرفته شده بروید




آیا دستورالعمل ساده ای برای نمایش اندازه کل (استفاده از دیسک) کلیه پرونده ها در یک فهرست (پوشه) وجود دارد؟

من اینها را امتحان کردم ، و آنها آنچه را که می خواهم انجام نمی دهند:

  • ls -l ، که فقط اندازه پرونده های فردی را در یک فهرست قرار می دهد ، و نه
  • df -h ، که فقط فضای آزاد و استفاده شده را روی دیسک های من نشان می دهد.

810









12 :تعداد پاسخها


دستور du "استفاده از دیسک در هر پرونده را بطور بازگشتی برای فهرستها خلاصه می کند" ، به عنوان مثال ،

 du -hs /path/to/directory
 
  • -h برای بدست آوردن اعداد "قابل خواندن انسان" است ، به عنوان مثال به 140M جای دریافت 143260 (اندازه در KBytes)
  • -s به طور خلاصه است (در غیر این صورت نه تنها اندازه پوشه بلکه همه چیز در پوشه را جداگانه دریافت خواهید کرد)

با استفاده از -h می توانید مقادیر قابل خواندن انسان را با استفاده از آن مرتب کنید

 du -h | sort -h
 

-h پرچم در sort خواهد "قابل خواندن توسط انسان" ارزش اندازه در نظر بگیرید.


اگر می خواهید از لیست بازگشت به صورت بازگشتی در همه پرونده ها و فهرست ها جلوگیری کنید ، می توانید --max-depth پارامتر را تهیه کنید تا تعداد موارد را محدود کنید. شایع ترین، --max-depth=1

 du -h --max-depth=1 /path/to/directory
 

1303



اخیراً یک ابزار تعاملی عالی و مبتنی بر ncurses پیدا کردم که به سرعت یک مرور کلی در مورد اندازه های فهرست ارائه می دهد. سالها در جستجوی آن نوع ابزار بود.

  • سریعاً از طریق سلسله مراتب فایل سرچ کنید
  • می توانید به عنوان مثال پرونده های عظیمی موقت را از داخل ابزار حذف کنید
  • خیلی سریع

به عنوان baobab برای خط فرمان فکر کنید :

 apt-get install ncdu
 

168



این اندازه را به صورت بازگشتی پیدا می کند و در کنار هر نام پوشه ، به همراه اندازه کل در پایین ، همه در قالب انسانی قرار می دهد.

 du -hsc *
 

55



لذت بردن!

 du foldername
 

اطلاعات بیشتر در مورد آن فرمان در اینجا


17



tree دستور مفید دیگری برای این کار است:

فقط آن را از طریق نصب کرده sudo apt-get install tree و موارد زیر را تایپ کنید:

 tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files
 

از درخت انسان :

 -h    Print  the size of each file but in a more human readable way, e.g. appending a size letter for kilo†
      bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).

--du  For each directory report its size as the accumulation of sizes of all its files and  sub-directories
      (and their files, and so on). The total amount of used space is also given in the final report (like
      the 'du -c' command.)
 

10



در زیر آنچه من برای چاپ کل ، پوشه و اندازه پرونده استفاده می کنم:

 $ du -sch /home/vivek/* | sort -rh
 

جزئیات

  ------------------------------------------------------------
   -c, --total
          produce a grand total
   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)
   -s, --summarize
          display only a total for each argument
 -------------------------------------------------------------
   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)
   -r, --reverse
          reverse the result of comparisons
 

خروجی

  70M    total
 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
 

10



پاسخ ها این نکته را آشکار ساخته است که du ابزاری برای یافتن اندازه کل یک فهرست است. با این حال ، دو عامل وجود دارد که باید در نظر بگیرید:

  • گاهی اوقات ، du خروجی می تواند گمراه کننده باشد ، زیرا فضای اختصاص داده شده توسط سیستم پرونده را گزارش می کند ، که ممکن است با مجموع اندازه پرونده های فردی متفاوت باشد. به طور معمول سیستم فایل 4096 بایت را برای یک فایل اختصاص می دهد حتی اگر فقط یک کاراکتر را در آن ذخیره کنید!

  • اختلافات خروجی به دلیل قدرت 2 و قدرت 10 واحد. -h سوئیچ به du تقسیم تعداد بایت های 2 ^ 10 (1024)، 2 ^ 20 (1048576) و غیره را به یک خروجی قابل خواندن توسط انسان. بسیاری از افراد ممکن است با دیدن قدرتهای 10 عادت داشته باشند (به عنوان مثال 1K = 1000 ، 1M = 1000000) و از نتیجه شگفت زده می شوند.

برای یافتن کل اندازه اندازه کلیه پرونده ها در یک فهرست ، بایت ، انجام دهید:

 find <dir> -ls | awk '{sum += $7} END {print sum}'
 

مثال:

 $ du -s -B 1
255729664

$ find .  -ls | awk '{sum += $7} END {print sum}'
249008169
 

4


2016-02-04

فقط برای اندازه فهرست در یک قالب قابل خواندن ، از موارد زیر استفاده کنید:

 du -hs directoryname
 

این احتمالاً در قسمت صحیح نیست ، اما از خط فرمان می توانید امتحان کنید:

 ls -sh filename
 

-s اندازه است، و -h قابل خواندن توسط انسان است.

استفاده از -l برای نمایش در ls لیست ، مانند زیر:

 ls -shl
 

2



du /foldername دستور استاندارد برای دانستن اندازه پوشه است. بهتر است با خواندن صفحه man گزینه ها را پیدا کنید:

 man du
 

قبل از استفاده از دستور باید صفحه man (در دسترس آنلاین ) را بخوانید .


0



در اینجا یک اسکریپت POSIX وجود دارد که با آن کار خواهد کرد:

  • یک فایل
  • فایل ها
  • دایرکتوری
  • راهنماها
 #!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
 

منبع


0



اگر فهرست مورد نظر شما دارای زیر فهرست های زیادی است ، از موارد زیر استفاده کنید:

 $ cd ~/your/target/directory
$ du -csh 
 

-c ، - در کل تولید کنید
-s ، - به طور خلاصه نمایش تعداد کل فقط برای هر آرگومان
، ساعت ، - اندازه های قابل خواندن توسط انسان با فرمت قابل خواندن توسط انسان (به عنوان مثال ، 1K 234M 2G)

که در این صورت کلیت حافظه توسط کلیه پرونده ها / پوشه ها در فهرست فعلی تولید می شود.


0



بهترین چیزی که فکر می کنم موارد زیر است:

 du -h directory_name | tail -n1
 

این تنها اندازه دایرکتوری مورد علاقه شما را نشان می دهد و اندازه هیچ دایرکتوری و پرونده ای را در آن فهرست قرار نمی دهد.

باید این را اضافه کنم که اگر اندازه پوشه بزرگ باشد ، دو برابر زمان بیشتری می برد. برای کار این فرمان باید صبور باشید. دقیقاً مانند هر دستور یونیکس دیگر ، ممکن است با استفاده time از این دستور قبل از این دستور ، کل زمان این فرآیند را پیدا کنید :

 time du -h directory_name | tail -n1
 

-2



انتشارات مرتبط


چگونه می توانم با استفاده از خط فرمان به یک شبکه wifi WPA وصل شوم؟

چگونه می توانم آخرین نسخه cmake را از خط فرمان نصب کنم؟

چگونه می توانم پسوند چندین فایل را بطور بازگشتی از خط فرمان تغییر دهم؟

چگونه می توانم از خط فرمان یک ppt را به pdf تبدیل کنیم؟

چگونه می توان نوع mime یک پرونده را از خط فرمان دریافت کرد؟

چگونه می توانم همه چیز را در / var / mail / username از خط فرمان حذف کنم؟

چگونه می توان یک پارتیشن ext4 را از خط فرمان ایجاد و تنظیم کرد؟

چگونه می توان تعداد بسته های نیاز به بروزرسانی را از خط فرمان پیدا کرد؟

چگونه می توانم نسخه یک برنامه را از خط فرمان دریافت کنم؟

چگونه می توانم هنگام استفاده از خط فرمان ، افزونه هایی برای بسته ها پیدا کنم؟

[filesystem] سوال برچسب


چگونه نسخه اوبونتو را که اجرا می کنم بررسی کنم؟ [تکثیر]

چگونه می توانم لیستی از پرونده های نصب شده را از یک بسته دریافت کنم؟

هنگام بارگیری در لیست بسته ها ، به دلیل خطای "عدم تطابق جمع"

رنگهای مختلف در ls چیست؟

چگونه می توانم نام رایانه را تغییر دهم؟

چگونه می توانم توافق نامه Microsoft EULA را برای نصب ttf-mscorefonts-installer بپذیرم؟

چگونه می توان نسخه هسته ، انتشار اوبونتو و اطلاعات پارتیشن دیسک را از ترمینال پیدا کرد؟

Teamviewer را با استفاده از سیستم 64 بیتی نصب کردم ، اما خطای وابستگی پیدا می کنم

چگونه اوبونتو را حذف کرده و ویندوز را دوباره فعال کنیم؟