কমান্ড লাইনে একটি ডিরেক্টরি আকার পেতে পারি?


1065

lsঅপশন সহ কমান্ডটি ব্যবহার করে আমি একটি ডিরেক্টরি (ডিরেক্টরি এবং উপ ডিরেক্টরি সহ) এর আকার অর্জন করার চেষ্টা করেছি l। এটি ফাইল ( ls -l file name) এর জন্য কাজ করে বলে মনে হচ্ছে তবে আমি যদি কোনও ডিরেক্টরি আকার (উদাহরণস্বরূপ ls -l /home) পাওয়ার চেষ্টা করি তবে আমি কেবল 4096 বাইট পাই, যদিও এটি পুরোপুরি অনেক বড়।


18
1) দৃrict়ভাবে বলতে, আপনি পারবেন না। লিনাক্সের ফোল্ডার নয়, ডিরেক্টরি রয়েছে। ২) একটি ডিরেক্টরি আকার (যা একটি বিশেষ ফাইল হোল্ড ইনড যা অন্য ফাইলগুলিতে নির্দেশ করে) এবং সেই ডিরেক্টরিতে থাকা সামগ্রীর আকারের মধ্যে পার্থক্য রয়েছে। অন্যরা যেমন উল্লেখ করেছে, du কমান্ডটি পরবর্তীটি সরবরাহ করে যা এটি আপনি চান তা প্রদর্শিত হয়।
জামেএসকিফ

11
যেমনটি আপনাকে নতুন বলে মনে হচ্ছে, আমি কেবলমাত্র সহায়ক -hবিকল্পটি চিহ্নিত করব যা আপনি বিকল্প হিসাবে যুক্ত করতে পারেন -l(যেমন ls -lh) ফাইলগুলির আকারগুলি 1130301 এর পরিবর্তে 1.1M এর মতো মানব-বান্ধব স্বরলিপিতে মুদ্রণ করতে পারেন The "এইচ" " du -hsডিরেক্টরিগুলি সম্পর্কে আপনার প্রশ্নের উত্তর হিসাবে @ স্যাম যে আদেশটি দিয়েছিল সেটিতে" মানব-পঠনযোগ্য "এর df -hঅর্থও রয়েছে এবং এটি ডিস্কে ব্যবহারযোগ্য এবং মুক্ত স্থানের মানব পাঠযোগ্য পরিমাণগুলিও দেখায় appears
মিসৌথ

উত্তর:


1489

du -sh file_path

ব্যাখ্যা

  • du( d isc u sage) কমান্ড ফাইল_পথ স্থান ব্যবহারের অনুমান করে
  • বিকল্পগুলি -sh(থেকে man du):

      -s, --summarize
             display only a total for each argument
    
      -h, --human-readable
             print sizes in human readable format (e.g., 1K 234M 2G)
    

    একাধিক ডিরেক্টরি যাচাই করতে এবং মোটটি দেখতে, ব্যবহার করুন du -sch:

      -c, --total
             produce a grand total
    

44
... যদি না আপনি hardlinks ;-) আছে stackoverflow.com/questions/19951883/...
Rmano

15
এটি আমি পছন্দ করি এই উত্তরটি <3 এটি সংক্ষেপে এবং কমান্ডের সাথে এক ধরণের পরিচিতি দেওয়া হয়েছে duএবং আরও বিশদ অনুসন্ধানের উপায় আপনি দিয়েছেন man du...

ইউনিক্সের মতো নির্মাতাদের জন্য ইঙ্গিত: পরের বার, প্রথমে "ডিস্কাসেজ" কমান্ডটি তৈরি করুন, অথবা "ডিস্ক ব্যবহার" এমনকি শর্টকাট ...;)
jave.web

find যেমন বর্তমান পথে নির্দিষ্ট সাব-ডিরেক্টরিতে স্থানের পরিমাণ গণনা করার জন্য এটি খুব সুন্দর কাজ করে: $ find . -type d -name "node_modules" -prune -exec du -sh {} \;
অ্যালেক্স গ্লুখভটসেভ

321

duকমান্ডটি কেবল ব্যবহার করুন :

du -sh -- *

মানব-পাঠযোগ্য বিন্যাসে বর্তমান ডিরেক্টরিতে সমস্ত অ-গোপনীয় ডিরেক্টরি, ফাইল ইত্যাদির সংযোজিত ডিস্ক ব্যবহার আপনাকে দেবে।

dfডিরেক্টরি সহ ফাইল সিস্টেমে ফাঁকা স্থান জানতে আপনি কমান্ডটি ব্যবহার করতে পারেন :

df -h .

4
du -sh *"অজানা বিকল্প" ত্রুটি ছুঁড়তে শুরু করে যদি সেই দির কোনও ফাইল ড্যাশ দিয়ে শুরু হয়। নিরাপদ করতেdu -sh -- *
mpen

1
du -sh *লুকানো ফোল্ডারগুলির স্মৃতি ব্যবহার দেখায় না
প্রশান্ত প্রভাকর সিং

4
du -sh -- * .*ডটফাইলস অন্তর্ভুক্ত করা। সম্ভবত একটি বৃহত্তর .gitডিরেক্টরি অন্তর্ভুক্ত করার জন্য এটি দরকারী example বিকল্পভাবে zsh এ আপনি setopt globdotsডিফল্টরূপে ডটফাইলে গ্লোব করতে পারেন ।
সিবারিক

1
কি করে --? আমি জানি এটি বিকল্প আর্গুমেন্টগুলি শেষ করতে শেল্ট বিল্ট-ইনগুলির ক্ষেত্রে প্রযোজ্য , তবে duএটি কোনও অন্তর্নির্মিত নয় এবং এই ব্যবহারটির জন্য নথিভুক্ত দেখতে পাচ্ছি না du: linux.die.net/man/1/du
ফ্লো

কখনও কখনও আপনি যুক্ত করতে চান -b( --apparent-size)
এলিগ

196

duতোমার বন্ধু. আপনি যদি কেবল কোনও ডিরেক্টরিটির মোট আকার জানতে চান তবে এটিতে ঝাঁপুন এবং চালনা করুন:

du -hs

আপনি যদি জানতে চান যে কোন সাব-ফোল্ডারগুলি কত ডিস্কের জায়গা নেয় ?! আপনি এই আদেশটি এখানে প্রসারিত করতে পারেন:

du -h --max-depth=1 | sort -hr

যা আপনাকে সমস্ত উপ-ফোল্ডারগুলির আকার দেবে (স্তর 1)। আউটপুটটি বাছাই করা হবে (শীর্ষে বৃহত্তম ফোল্ডার)।


এটি লিনাক্সের কয়েকটি (সম্ভবত পুরানো?) সংস্করণগুলিতে মনে হয়, সাজানোরটিতে এইচ সুইচ নেই, এবং এরপরে পরবর্তী সেরা কমান্ডটি আমি খুঁজে পেতে পারি: du -c --max-গভীরতা = 1 | সাজানো -আরএন
সমৃদ্ধশালায়

@ রিচহলস্টোক আপনি যদি ncduফাইলগুলি ডিফল্টরূপে অবতরণ মাপ অনুসারে বাছাই করে থাকেন।
আর্মফুট

3
"| বাছাই-ঘন্টা"
আফ্রিকাঙ্ক

67

duব্যবহার করা জটিল হতে পারে যেহেতু আপনাকে শালীন আউটপুট পেতে আপাতদৃষ্টিতে 100 টি যুক্তি পাস করতে হবে। লুকানো ফোল্ডারগুলির আকার নির্ধারণ করা আরও শক্ত।

আপনার জীবনকে সহজ এবং ব্যবহার করুনncdu

ncdu

আপনি সহজেই ব্রাউজযোগ্য ফোল্ডার প্রতি সারাংশ পান per


9
এটি সঠিক উত্তর হওয়া উচিত, কমপক্ষে তাদের জন্য যারা সিস্টেমে সফ্টওয়্যার ইনস্টল করতে পারেন। দুর্ভাগ্যক্রমে আমি ভাবি না যে বেশিরভাগ লোকেরা এটিকে দেখার জন্য যথেষ্ট পরিমাণে স্ক্রোল করবে।
ডেভিডআর

@ রিকি নোটারো-গার্সিয়া নোপ, এটি লুকানো বস্তুগুলি উপেক্ষা করে এবং বড় ডিরেক্টরিতে ঝুলিয়ে রাখে। এটি সম্ভবত এক ডজন পাইপ সহ একটি ঠিক আছে সমাধান হতে পারে, তবে কেন আপনার জীবন অপচয় করবেন।
টেক

@ রিকি নোটারো-গার্সিয়া আমার সম্পূর্ণ মন্তব্য পড়ুন: আপনার প্রচেষ্টা লুকানো বস্তুগুলি উপেক্ষা করে এবং বড় ডিরেক্টরিতে ঝুলিয়ে রাখে।
Teque5

2
ncduদুর্দান্ত, আমি সর্বদা এই আদেশটি সন্ধান করি যখন ভুলে যাই। এটি দ্রুত, নেভিগেট করা সহজ এবং সহজেই বড় ফোল্ডারগুলি সন্ধান করতে সহায়তা করে। এফওয়াইআই, এটি ম্যাকওএস এবং খুব সম্ভবত সমস্ত লিনাক্স মেশিনের জন্য উপলব্ধ।
লুকাস

..এবং আপনার কাছ থেকে সোজা ফোল্ডার মুছে দিতে পারেন ncduটিপে dকী
ccpizza

32

অন্যরা উল্লেখ করেছেন du, তবে আমি এনসিডু - কেও উল্লেখ করতে চাই - যা একটি আন্তঃব্যবহারের সংস্করণ duএবং ইন্টারঅ্যাক্টিভিটি সরবরাহ করে: আপনি সরাসরি ডিরেক্টরি হায়ারার্কির অন্বেষণ করতে পারেন এবং উপ-ডিরেক্টরিগুলির আকার দেখতে পারেন।


26

duকমান্ড ফাইলের ডিস্কের ব্যবহার দেখায়।

-hবিকল্প পাঠযোগ্য আকারে ফলাফল দেখায় (যেমন, 4K, 5M, 3G)।

du -h (file name)

22

উপরের সমস্ত উদাহরণ আপনাকে ডিস্কে থাকা ডেটার আকার (যেমন কোনও নির্দিষ্ট ফাইল ব্যবহার করে এমন ডিস্কের জায়গার পরিমাণ, যা প্রকৃত ফাইলের আকারের চেয়ে সাধারণত বড় হবে) বলে দেবে। কিছু পরিস্থিতি রয়েছে যেখানে এগুলি আপনাকে একটি সঠিক প্রতিবেদন দেবে না, যদি ডেটাটি এই নির্দিষ্ট ডিস্কে প্রকৃতপক্ষে সংরক্ষণ না করা হয় এবং কেবল ইনোডের উল্লেখ থাকে।

আপনার উদাহরণস্বরূপ, আপনি একক ফাইলে ls -l ব্যবহার করেছেন, যা ফাইলটির আসল আকারটি ফিরিয়ে আনবে, ডিস্কের আকার নয় NOT

যদি আপনি প্রকৃত ফাইলের আকার জানতে চান তবে du--b বিকল্পটি যুক্ত করুন।

du -csbh .

হ্যাঁ. আমি এসডিএফ ব্যবহার করছি যা ফাইলগুলি সংকুচিত করে এবং ছাড়ায়, তাই আমি কেন বুঝতে পারছিলাম না যে এটি এত কম সংখ্যক কেন রিপোর্ট করছে। এলএস সহ ফাইলগুলির আসল আকারটি ব্যবহার করে পাওয়া যাবে: du -b
রায়ান শিলিংটন

15

ব্যক্তিগতভাবে আমি মনে করি এটি সেরা, আপনি যদি ব্যবহার করতে না চান ncdu

# du -sh ./*

14
df -h .; du -sh -- * | sort -hr

এটি বর্তমান ড্রাইভে আপনি কত ডিস্কের জায়গা রেখেছেন তা দেখায় এবং তারপরে আপনাকে জানায় যে প্রতিটি ফাইল / ডিরেক্টরি কতটা নেয়। যেমন,

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb2       206G  167G   29G  86% /
115M    node_modules
2.1M    examples
68K     src
4.0K    webpack.config.js
4.0K    README.md
4.0K    package.json

এফওয়াইআই, মনে হয় এটি ডেস্ক-অন-ডিস্কের প্রতিবেদন করেছে। অর্থাত্ এটি সম্ভবত নিকটতম 4KB এ প্যাড করা হবে।
এমপেন


9

বর্তমান ডিরেক্টরি অধীনে সমস্ত ফাইল পুনরাবৃত্তভাবে সন্ধান করুন এবং তাদের আকার যোগ করুন:

find -type f -print0 | xargs -0 stat --print='%s\n' | awk '{total+=$1} END {print total}'

আমি -not -type dকেবলমাত্র সাধারণ ফাইল ( -type f) আকারের আকার নয়, প্রতীকী লিঙ্কগুলিরও আকার এবং এই জাতীয় ব্যবহার করব।
অ্যান্টন_আরহ

এটি দুর্দান্ত, কারণ আপনি ফাইলগুলি সংরক্ষণ করার জন্য প্রয়োজনীয় ওভারহেড পান না, তবে কেবল ফাইলগুলির আকার সেগুলিই থাকে।
bবলldave025

9

আপনার .বাশ_লিয়াসগুলির জন্য এখানে একটি ফাংশন

# du with mount exclude and sort
function dusort () {
    DIR=$(echo $1 | sed 's#\/$##')
    du -scxh $(mount | awk '{print $3}' | sort | uniq \
     | sed 's#/# --  exclude=/#') $DIR/* | sort -h
}

নমুনা আউটপুট:

$ dusort /
...
0       /mnt  
0       /sbin
0       /srv
4,0K    /tmp
728K    /home
23M     /etc
169M    /boot  
528M    /root
1,4G    /usr
3,3G    /var
4,3G    /opt
9,6G    total

সাবদারদের জন্য:

$ dusort .
$ dusort /var/log/


6

নোট করুন যে duডিরেক্টরিগুলি ডিরেক্টরিতে সমস্ত ফাইলের মোট আকারের চেয়ে সাধারণত মিডিয়াতে যে স্থানটি দখল করে তা মুদ্রণ করে, কারণ duডিরেক্টরিটি সম্মতিতে সংগঠিত করার জন্য মিডিয়াতে সঞ্চিত সমস্ত সহায়ক তথ্যের আকার বিবেচনা করে ফাইল সিস্টেম ফর্ম্যাট সহ।

যদি ফাইল সিস্টেমটি সংকোচনযোগ্য হয় তবে duসমস্ত ফাইলের মোট আকারের চেয়ে আরও কম সংখ্যক আউটপুট আনতে পারে কারণ ফাইলগুলি অভ্যন্তরীণভাবে ফাইল সিস্টেম দ্বারা সংকুচিত হতে পারে এবং তাই তারা কেবলমাত্র সংকুচিত তথ্যের চেয়ে মিডিয়ায় কম স্থান নেয়। স্পার্স ফাইল থাকলে একই।

ডিরেক্টরিতে যদি হার্ড লিঙ্কগুলি থাকে, তবে duছোট মানটিও মুদ্রণ করতে পারে কারণ ডিরেক্টরিতে বিভিন্ন ফাইলগুলি মিডিয়ায় একই ডেটা উল্লেখ করে।

ডিরেক্টরিতে সমস্ত ফাইলের সরল মোট আকার পেতে, নিম্নলিখিত এক-লাইন শেল এক্সপ্রেশন ব্যবহার করা যেতে পারে (একটি জিএনইউ সিস্টেম ধরে):

find . ! -type d -print0 | xargs -r0 stat -c %s | paste -sd+ - | bc

বা আরও ছোট:

find . ! -type d -printf '%s\n' | paste -sd+ - | bc

এটি কেবলমাত্র ডিরেক্টরিগুলির (এবং এর উপ-ডিরেক্টরিগুলি পুনরাবৃত্তভাবে) ডিরেক্টরিতে থাকা সমস্ত নন-ডিরেক্টরি ফাইলের আকারের পরিমাণগুলি যোগ করে। দ্রষ্টব্য যে সিমলিঙ্কগুলির জন্য, এটি সিমলিংকের আকারের প্রতিবেদন করে (ফাইলটি সিমিলিংক পয়েন্ট করে না)।


5

তুমি ব্যবহার করতে পার

du -sh directory/

এবং

du -sh filename

ফোল্ডার বা ফাইল দ্বারা দখল স্থান জানতে।

df -h

মানব পাঠযোগ্য বিন্যাসে ডিস্কের ব্যবহার প্রদর্শন করবে - এইটি করে।

এছাড়াও একটি গুই ভিত্তিক প্রোগ্রাম বলা হয় Disk Usage Analyzer


5

এখানে একটি পসিক্স স্ক্রিপ্ট রয়েছে যা এর সাথে কাজ করবে:

  • একটি নথি
  • নথি পত্র
  • একটি ডিরেক্টরি
  • ডিরেক্টরি
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

উৎস

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.