আপনি নিম্নলিখিতটি দ্বারা তারিখটি কীভাবে কাজ করে তা দেখার চেষ্টা করতে পারেন:
date -d "$(date -d "Mar 31 2019" +%F) +1 month ago"
Sun Mar 3 00:00:00 EET 2019
সুতরাং আমি মনে করি যে গত মাসে নিরাময়ের উপর ভিত্তি করে (নিরাময় নয়, যদি তা মার্চ হয়), নিরাময়কারী মাস থেকে গত মাস থেকে দিনের সংখ্যা হ্রাস পায়।
আপনি পুরানো ফাইলগুলি মুছতে নীচের বাক্য গঠন চেষ্টা করতে পারেন তারপরে বেশ কয়েকটি দিন (উদাহরণস্বরূপ 31 দিনের দিন)। সমস্যাটি সমাধান করার জন্য একটি লাইন (এটি একটি সহজ পদ্ধতির জন্য)।
find /path/to/folder/with/arhives/ -mindepth 1 -mtime +31 -delete
আরও বিশদ পদ্ধতির জন্য আপনি এই জাতীয় কিছু করতেও পারেন: ১. নিরাময়ের মাসের জন্য দিনের সংখ্যা সন্ধান করা:
cal $(date +%m) $(date +%y) | egrep -v "$(date +%y)|Su" | xargs | awk '{print $NF}'
গত মাসের জন্য দিনের সংখ্যা সন্ধান করা:
প্রতিধ্বনি "$ (ক্যালি $ (তারিখ +% মি) $ (তারিখ +% y) | উদাহরণস্বরূপ -v" date (তারিখ +% y) | সু "| xargs | জারজ '{প্রিন্ট $ NF}') -" $ ( ক্যাল $ (তারিখ -d "+1 মাস আগে" +% মি) $ (তারিখ +% y) | egrep -v "$ (তারিখ +% y) | সু" | xargs | awk '{প্রিন্ট $ NF}') | খ্রিস্টপূর্ব
সুতরাং এখন আমরা সেই দুই মাসের মধ্যে পার্থক্যটি খুঁজে পাই:
প্রতিধ্বনি "$ (ক্যালি $ (তারিখ +% মি) $ (তারিখ +% y) | উদাহরণস্বরূপ -v" date (তারিখ +% y) | সু "| xargs | জারজ '{প্রিন্ট $ NF}') -" $ ( ক্যাল $ (তারিখ -d "+1 মাস আগে" +% মি) $ (তারিখ +% y) | egrep -v "$ (তারিখ +% y) | সু" | xargs | awk '{প্রিন্ট $ NF}') | খ্রিস্টপূর্ব
এখন এই 3 টি পদক্ষেপে কিছু ভেরিয়েবল বরাদ্দ করা যাক। পদক্ষেপ 1 ভেরিয়েবলের নাম: এফসিএম পদক্ষেপ 2 পরিবর্তনশীল নাম: এফএলএম পদক্ষেপ 3 পরিবর্তনশীল NAme: ডিসিএল
FCM=$(cal $(date +%m) $(date +%y) | egrep -v "$(date +%y)|Su" | xargs | awk '{print $NF}')
FLM=$(al $(date -d "+1 month ago" +%m) $(date +%y) | egrep -v "$(date +%y)|Su" | xargs | awk '{print $NF}')
DCL=$(echo "$FCM-$FLM" | bc)
$ এফসিএম এবং $ এফএলএম এর পার্থক্যের ভিত্তিতে $ ডিসিএল 0 (শূন্য) সমান হলে এবং মুছুন কিনা তা যাচাই করুন:
if [ $DCL -ne 0 ]; then
if [ $DCL -lt 0 ]; then
find /path/to/folder/with/arhives/ -mindepth 1 -mtime +$(echo "$DCL+$FLM" | bc) -delete
elif [ $DCL -gt 0 ]; then
find /path/to/folder/with/arhives/ -mindepth 1 -mtime +$(echo "$DCL+$FLM" | bc) -delete
fi
else
find /path/to/folder/with/arhives/ -mindepth 1 -mtime +$FLM -delete
fi
আপনি "/ পাথ / টু / ফোল্ডে / উইথ / আর্টিভিজ /" এ একটি চলক যুক্ত করতে পারেন।
উপসংহার: আপনি যদি পুরানো ফাইলগুলি মুছতে চান তবে এক মাস (ঠিক), আপনার যদি "তারিখ" কমান্ড এবং "+1 মাস আগে" ব্যবহার করা হয় তবে আপনার সঠিক দিনগুলি সামঞ্জস্য করতে হবে।