জিএনইউ du
(অর্থাত্ এমবেডেড লিনাক্স বা সিগউইন) এর সাহায্যে আপনি --exclude
যে ফাইলগুলি মেলে না তা বাদ দিতে বিকল্পটি ব্যবহার করতে পারেন ।
du -s --exclude='*.html' /var/foo
আপনি যদি *.pdf
ফাইলগুলি ইতিবাচকভাবে মেলে নিতে চান তবে আপনার ফাইলগুলি তালিকাভুক্ত করতে অন্য কিছু পদ্ধতি ব্যবহার করতে du
হবে এবং কমপক্ষে আর্গুমেন্টের জন্য একটি আউটপুট লাইন প্রদর্শন করতে হবে, পাশাপাশি বিকল্পের সাথে একটি দুর্দান্ত মোট প্রদর্শন করবে -c
। আপনি tail
শেষ লাইন ব্যতীত সমস্ত মুছে ফেলার জন্য কল করতে পারেন, বা পাশাপাশি "টোটাল" শব্দটি সরিয়ে ফেলতে পারেন। সেই এক ডিরেক্টরিতে ফাইলগুলি গণনা করতে, শেলটিতে ওয়াইল্ডকার্ড ব্যবহার করুন।
du -sc /var/foo/*.pdf | tail -n1
du -sc /var/foo/*.pdf | sed -n '$s/\t.*//p'
আপনার যদি সাব ডাইরেক্টরিগুলিতেও পাশাপাশি ফাইলগুলি ট্র্যাভার করতে হয় তবে আপনার শেল যদি এটি সমর্থন করে তবে find
কোনও **/
প্যাটার্ন ব্যবহার করুন বা ব্যবহার করুন । জন্য **/
, ব্যাশ, প্রথম রান shopt -s extglob
, এবং মনে রাখবেন 4.2 পর্যন্ত ব্যাশ সংস্করণ ডিরেক্টরি প্রতি সিম্বলিক লিঙ্ক তর্ক হবে; zsh এ, এটি বাক্সের বাইরে কাজ করে।
du -sc /var/foo/**/*.pdf | tail -n1
সন্ধান সংস্করণটির সাথে একটি অতিরিক্ত জটিলতা হ'ল যদি প্রচুর ফাইল থাকে তবে কমান্ড লাইনের দৈর্ঘ্যের সীমাতে রাখা একাধিকবার find
চালিত du
হবে। ওয়াইল্ডকার্ড পদ্ধতিতে যদি এমনটি ঘটে তবে আপনি একটি ত্রুটি পাবেন ("কমান্ড লাইনের দৈর্ঘ্যের সীমা অতিক্রম করে")। নিম্নলিখিত কোডটি ধরে নিয়েছে যে আপনার কাছে কোনও নিউলাইন যুক্ত কোনও ফাইলের মিল নেই।
find /var/foo -name '*.pdf' -exec du -sc {} + |
awk '$2 == "total" {total += $1} END {print total}'
du -sh /foo/*.pdf
?