সমাধান
বিকল্পটি -c
(বা --total
) সরবরাহ করে du(1)
আপনি এটিকে একটি দুর্দান্ত মোট উত্পাদন করতে নির্দেশ দিতে পারেন। যদি আপনার প্রয়োগটি du(1)
এই বিকল্পগুলির মধ্যে দুটিকে সমর্থন করে তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে পছন্দসই প্রভাব অর্জন করতে পারেন:
$ find . -name 'flibble*' -ctime +90 -exec du -shc {} +
সম্পাদনা: নোট করুন যে ফাইলগুলির সংখ্যা যদি আপনার সিস্টেম দ্বারা অনুমোদিত প্যারামিটারের সর্বাধিক সংখ্যার বেশি হয়ে যায়, find
তবুও command
একাধিকবার কার্যকর করা যেতে পারে । কিছু বাস্তবায়ন du(1)
ফাইল থেকে ফাইলের নামগুলি পড়াও সমর্থন করে যা উল্লিখিত সীমাবদ্ধতায় ভুগছে না:
$ find -name 'flibble*' -ctime +90 -print0 > filenames
$ du -shc --files0-from=filenames
ব্যাখ্যা
শব্দার্থবিজ্ঞানের মধ্যে পার্থক্য -exec command {} \;
এবং -exec command {} +
নিম্নলিখিতটি:
command {} \;
command
প্রতিটি ফলাফলের জন্য একবার চালায় find
। ফলাফলের পথের পরিবর্তে পাস করা হয়েছে {}
।
$ touch 1 2 3
$ find 1 2 3 -maxdepth 0 -exec echo {} \;
1
2
3
command {} +
কার্যকর করা হয় command
, যখন সমস্ত ফলাফল পুনরুদ্ধার করা হয়। পরিবর্তে ফলাফলের নামগুলি পাস করা হয় {}
।
$ touch 1 2 3
$ find 1 2 3 -maxdepth 0 -exec echo {} +
1 2 3
-print0
বিকল্প ঘটায় find(1)
মান আউটপুট নাল অক্ষর দ্বারা পৃথক পাওয়া ফাইলের নামের প্রিন্ট করতে, এবং --files0-from
বিকল্প সৃষ্ট du(1)
নাল বিভাজিত ফাইলের নামের পড়তে। নতুন লাইন চরিত্রের বিপরীতে নাল অক্ষরটি কোনও ফাইলের নাম হিসাবে উপস্থিত নাও হতে পারে, সুতরাং আউটপুটটি দ্ব্যর্থহীন।
এর বিকল্পগুলি সম্পর্কে আরো জানতে du(1)
এবং find(1)
, আপনি নিজ নিজ manpages পরামর্শ করা উচিত:
$ man du
$ man find