এই আর্টিকেলে দেখানো হয়েছে কীভাবে একটি নির্দিষ্ট সংখ্যক দিন (বা ঘণ্টা/মিনিট) পুরনো ফাইল ডিলিট করবেন ম্যানুয়ালি বা ব্যাশ স্ক্রিপ্ট দিয়ে অটোমেটিক্যালি। উদাহরণ অন্তর্ভুক্ত।
নির্দিষ্ট দিন (বা মিনিট, বা ঘণ্টা) এর চেয়ে পুরনো ফাইল রিমুভ করার জন্য দুটি লিনাক্স কমান্ড ব্যবহার করা হয় - rm এবং find।
rm দিয়ে ফাইল ডিলিট
প্রথমে, rm কমান্ড। rm কমান্ড লিনাক্সে ফাইল এবং ডিরেক্টরি রিমুভ করার জন্য ব্যবহৃত হয়। এটি সম্পর্কে পুরো আর্টিকেল:
rm Command in Linux [With Examples]
rm-এ ফিল্টারড ফাইল লিস্ট পাস করা
পরবর্তী কম্পোনেন্ট, find কমান্ড। find কমান্ড একটি সেট কритেরিয়া অনুযায়ী ফাইল খুঁজে বের করতে ব্যবহৃত হয় - এই কেসে, ফایلtyj এর বয়স (মডিফাই হওয়ার পর থেকে बीते সময়)। আমাদের find কমান্ড আর্টিকেল:
Find Command in Linux [With Useful Examples]
একসাথে ব্যবহার - উদাহরণ
find এবং rm একসাথে ব্যবহার:
find /path/to/files/* -mtime +7 -exec rm {} \; এখানে কী হচ্ছে?
- find কল হচ্ছে /path/to/files ডিরেক্টরিতে
- -mtime অপশন find-এ পাস করা হয়েছে +7 ভ্যালুসহ - অর্থাৎ ৭ দিনের চেয়ে বেশি আগে মডিফাই হওয়া ফাইল
- exec অপশন find-এ পাস করা হয়েছে প্রতিটি ম্যাচিং ফাইলের ওপর চালানোর কমান্ডসহ
- rm কল হচ্ছে find-এর -exec অপশন দ্বারা
- এটি find-এ দেওয়া কন্ডিশন ম্যাচ করা সকল ফাইল রিমুভ করবে
- লাইনের শেষে কার্লি ব্রেস, স্ল্যাশ, এবং সেমিকোলন সিগন্যাল দিচ্ছে find-এর প্রতিটি ম্যাচিং ফাইলের জন্য কমান্ডের শেষ
দিনের বদলে ঘণ্টা, মিনিট
দিনের বদলে মিনিট ইউনিট ব্যবহার করতে, -mmin ব্যবহার করুন -mtime-র বদলে।
find /path/to/files/* -mmin +30 -exec rm {} \; উপরের উদাহরণ ৩০ মিনিটের চেয়ে পুরনো ফাইল ডিলিট করবে।
একে স্ক্রিপ্ট বানানো
বারবার টাইপ করার বদলে, আপনি এটাকে একটি স্ক্রিপ্ট বানাতে পারেন
#!/bin/bash find /path/to/files/* -mtime +7 -exec rm {} \; উপরের স্নিপেট একটি ফাইলে সেভ করুন (নাম deletescript.sh, উদাহরণস্বরূপ), এবং তারপর কল করুন:
./deletescript.sh
আপনি কমান্ডের জন্য একটি এলিয়াসও তৈরি করতে পারেন যেকোনো জায়গা থেকে রান করার জন্য।
পুরনো ফাইল ডিলিশন শিডিউল করা
আপনি যদি কমান্ডটি একটি নির্দিষ্ট ইন্টারভালে অটোমেটিক্যালি রান করতে চান, আপনার crontab-এ যোগ করুন। crontab ফাইলে একটি ইউজারের শিডিউলড টাস্ক রাখা হয় লিনাক্সে, এবং এডিট করা যায় চালিয়ে:
crontab -e
উপরের কমান্ড চালালে crontab এডিটর দেখাবে। ফাইলে নিচের লাইন অ্যাপেন্ড করুন প্রতিদিন রান করার জন্য:
@daily find /path/to/files/* -mtime +7 -exec rm {} \;