বাশ-এ একটি লাইন কমান্ড ব্যবহার করে একটি তালিকা বিন্যাসে প্রতিটি উপ-ডিরেক্টরি আকার প্রদর্শন করবেন?


100

ডিরেক্টরিগুলির তালিকা এবং সেগুলির আকারের একটি তালিকা ফর্ম্যাটে পেতে চাই যেমন আপনি যখন কী করবেন তখন কীভাবে পাবেন ls -l

জিনিসটি এমন যে একটি লাইন কমান্ড এটি করতে পারে? আমি দেখতে পাচ্ছি অন্যদের কাছে কেবল এটি আউটপুট দেওয়ার জন্য দীর্ঘ কমান্ড রয়েছে। এটা ঠিক অনেক দীর্ঘ।

কোন কমান্ড এটি করতে পারে বা কমান্ডগুলির সংমিশ্রণগুলি সহজেই টাইপ করা যায়? du -hএটি দেয়, তবে এটি সমস্ত সাব-ফোল্ডার প্রদর্শন করে যা আমি চাই না। শুধু বর্তমান ডিরেক্টরি ফোল্ডার।

উত্তর:


71

আপনি সম্ভবত আকার অনুসারে অর্ডার করা ডিরেক্টরিগুলি দেখতে চান:

$ du -hs * | sort -hr

856M    lib
746M    share
612M    lib64
312M    src
267M    java
239M    bin
179M    sbin
173M    local
93M     i686-w64-mingw32
72M     libexec
26M     include
20M     puppet
772K    X11R6
20K     man
4.0K    games
4.0K    etc
0       tmp

ডিরেক্টরিতে বড় সংখ্যক এন্ট্রি থাকলে এটি কাজ করে না। bash: /run/current-system/sw/bin/du: Argument list too long
ক্রিস স্ট্রাইজিনস্কি

123

এটা চেষ্টা কর

du -h --max-depth=1

আউটপুট

oliver@home:/usr$ sudo du -h --max-depth=1
24M     ./include
20M     ./sbin
228M    ./local
4.0K    ./src
520M    ./lib
8.0K    ./games
1.3G    ./share
255M    ./bin
2.4G    .

বিকল্প

যদি --max-depth=1আপনার স্বাদের জন্য কিছুটা দীর্ঘ হয় তবে আপনি এটি ব্যবহার করে দেখতেও পারেন:

du -h -s *

এটি -s( --summarize) ব্যবহার করে এবং কেবলমাত্র ফোল্ডারের আকারটি ডিফল্টরূপে মুদ্রণ করবে। বর্তমান কার্যনির্বাহী ডিরেক্টরিতে ( *) এর সমস্ত উপাদান অতিক্রম করে, এটি অনুরূপ আউটপুট উত্পাদন করে --max-depth=1:

আউটপুট

oliver@cloud:/usr$ sudo du -h -s *
255M    bin
8.0K    games
24M     include
520M    lib
0       lib64
228M    local
20M     sbin
1.3G    share
4.0K    src

পার্থক্যটি সূক্ষ্ম। পূর্ববর্তী পদ্ধতির বর্তমান কার্যনির্বাহী ডিরেক্টরিগুলির মোট আকার এবং এতে থাকা সমস্ত ফোল্ডারের মোট আকার প্রদর্শন করবে ... তবে কেবল 1 এর গভীরতা পর্যন্ত।

পরবর্তী পদ্ধতিটি স্বতন্ত্রভাবে পাস করা সমস্ত আইটেমের মোট আকার গণনা করবে । সুতরাং এটিতে lib64আউটপুটে সিমিলিংক অন্তর্ভুক্ত রয়েছে তবে লুকানো আইটেমগুলি বাদ দেয় (যার নাম একটি বিন্দু দিয়ে শুরু হয়)। এটি বর্তমান কার্যনির্বাহী ডিরেক্টরিতে মোট আকারও অভাব করে, কারণ এটি একটি আর্গুমেন্ট হিসাবে পাস করা হয়নি।


4
নিখুঁত উত্তর. ম্যাক ওএসএক্স-এ --depthপ্যারামিটারটি স্বীকৃত নয়। du -h -d 1একই ফলাফলের জন্য ব্যবহার করুন ।
ডিলান

6

সমস্ত ফাইলের ফোল্ডার এবং লুকানো ফাইলগুলির আকার ডিস্কে মুদ্রণ করুন:

el@dev /home/el $ du -sh `ls -a`
258M    .
265M    ..
4.0K    .classpath
258M    .git
4.0K    .gitignore
9.0K    nbactions.xml
12K     README
20K     .README.swp
4.0K    run.sh
23K    XmlPostPropagate.php

2
তবে সাবধান! কেন আপনি
এলএস

2

এনসিউর্স ডিস্ক ইউজেজ শেল কমান্ডটি উল্লেখ করার মতো

এনসিডিডু হ'ল একটি ডিস্ক ব্যবহার বিশ্লেষক যা একটি এনসিআরএস ইন্টারফেস। এটি এমন কোনও দূরবর্তী সার্ভারে স্পেস হগগুলি সন্ধানের জন্য ডিজাইন করা হয়েছে যেখানে আপনার পুরো গ্রাফিকাল সেটআপ উপলব্ধ নেই তবে নিয়মিত ডেস্কটপ সিস্টেমে এটি একটি দরকারী সরঞ্জাম। এনসিডু লক্ষ্য, দ্রুত, সহজ এবং সহজেই ব্যবহারযোগ্য এবং এনক্রোস ইনস্টল থাকা কোনও ন্যূনতম পসিক্স-জাতীয় পরিবেশে চালাতে সক্ষম হওয়া উচিত।

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