উত্তর:
এটি দিয়ে করা যেতে পারে find
:
find . -type f -size -1M -exec rm {} +
দ্রষ্টব্য যে এটি পুনরাবৃত্তভাবে উপ-ডিরেক্টরিতে নেমে যাবে এবং নিঃশর্তভাবে 1 মেগাবাইটের চেয়ে ছোট সমস্ত ফাইল মুছবে। সতর্ক হোন.
find
। :)
find
সীমাবদ্ধতার সাথে মিলিত হওয়ার জন্য ডাকা প্রক্রিয়াটির পক্ষে যুক্তিগুলির সংখ্যা সীমাবদ্ধ করে, এর বিপরীতে rm *
, যা একক প্রক্রিয়া আহবান হিসাবে গ্যারান্টিযুক্ত । প্রয়োজনে find
একাধিক উদাহরণ চাইবে rm
। এবং আমি পুরোপুরি নিশ্চিত যে নিউলাইন চরিত্রগুলি সহ বিশেষ অক্ষরগুলি সঠিকভাবে আচরণ করা হবে। আমি নমনীয়তার কারণে -exec rm
বেশি পছন্দ করি -delete
- উদাহরণস্বরূপ, পরবর্তীরা রাইট-সুরক্ষিত ফাইলগুলি মোছার কোনও উপায় সরবরাহ করে না।
-1M
ইচ্ছামত এক মেগাবাইটের চেয়ে কম মানে। আপনার সংস্করণটি হ'ল এক মেগাবাইট আকারের সমস্ত ফাইল মুছবে, যা কিছুটা অর্থহীন অপারেশন বলে মনে হচ্ছে।
find . -type f -size +1M -exec rm {} +
। -1 এম এর পরিবর্তে + 1 এম নোট করুন।
এটি কাজ করা উচিত:
$ find <directory> -type f -size -1M -delete
-
সাইনটি একটি বিয়োগ চিহ্ন যার অর্থ "1M এর চেয়ে কম"। আপনি চালনা করলে find <directory> -type f -size +1M -delete
আপনি 1 এম এর চেয়ে বড় সমস্ত ফাইল মুছবেন ।
কেবল বৈচিত্র্য এবং একটি সম্ভাব্য (সম্ভবত প্রান্তিক) পারফরম্যান্স লাভের জন্য:
find <directory> -type f -size -1M -print0 | xargs -0 rm
xargs
প্রক্রিয়া শুরু করে।
আপনি এই লিঙ্কটি চেকআউট করতে পারেন http://ayaz.wordpress.com/2008/02/05/bash-quickly-deleting-empty-files-in-a-directory/ , এতে আপনি যা চান ঠিক তা আছে।
for file in *;
do
file_size=$(du $file | awk '{print $1}');
if [ $file_size == 0 ]; then
echo "Deleting empty file $file with file size $file_size!";
echo "rm -f $file";
fi;
done
আপনি লুপের জন্য সমস্ত ফাইলের মাধ্যমে পুনরাবৃত্তি করতে পারেন এবং তারপরে উপরের উদাহরণের মতো ফাইলসাইজটি অনুসন্ধান করতে ডু এবং অ্যাড ব্যবহার করতে পারেন।
1M
।