यह लेख आपको दिखाएगा कि किसी निश्चित दिन से अधिक पुरानी फ़ाइलों को कैसे हटाया जाए (या घंटे/मिनट) मैन्युअल रूप से या स्वचालित रूप से बैश स्क्रिप्ट के माध्यम से। उदाहरण शामिल हैं।
निश्चित दिनों (या मिनट, या घंटों) से पुरानी फ़ाइलों को हटाने से दो Linux कमांड का उपयोग होता है - rm और ढूंढें ।
rm के साथ फ़ाइलें हटाना
सबसे पहले, rm आज्ञा। आरएम कमांड का इस्तेमाल निकालने . के लिए किया जाता है लिनक्स में फाइलें और निर्देशिकाएं। इसका उपयोग कैसे किया जाता है, इसके बारे में यहां एक संपूर्ण लेख है:
Linux में rm कमांड [उदाहरण के साथ]
फ़ाइलों की फ़िल्टर की गई सूची को rm . पर पास करना
अगला घटक, ढूंढें आज्ञा। ढूंढें कमांड का उपयोग मापदंड के एक सेट के आधार पर फाइलों को खोजने के लिए किया जाता है - इस मामले में, फ़ाइल की आयु (इसे संशोधित किए जाने के बाद से समय बीत चुका है)। यहां ढूंढें . पर हमारा लेख है आदेश:
Linux में कमांड ढूंढें [उपयोगी उदाहरणों के साथ]
उन्हें एक साथ रखना - उदाहरण
ढूंढें . का उपयोग करना और आरएम एक साथ:
find /path/to/files/* -mtime +7 -exec rm {} \;
यहाँ क्या हो रहा है?
- ढूंढें निर्देशिका पर कॉल किया जाता है /path/to/files
- द -mtime ढूंढने . के लिए विकल्प पास किया गया है मान के साथ +7 इसे पास कर दिया गया है - यानी फ़ाइलें 7 दिन से अधिक पहले संशोधित की गई हैं
- निष्पादन प्रत्येक मिलान फ़ाइल के विरुद्ध चलाने के लिए कमांड के साथ खोजने के लिए विकल्प पास किया जाता है
- आरएम -exec . द्वारा कहा जाता है ढूंढें . में विकल्प
- यह ढूंढने . को दी गई शर्तों से मेल खाने वाली सभी फाइलों को हटा देगा
- पंक्ति के अंत में घुंघराले ब्रेसिज़, स्लैश और अर्धविराम कमांड के अंत का संकेत देते हैं ढूंढें प्रत्येक मेल खाने वाली फ़ाइल पर चलना चाहिए
दिनों के बजाय घंटे, मिनट
समय की इकाई के रूप में दिनों के बजाय मिनटों का उपयोग करने के लिए, आप -mmin . को प्रतिस्थापित कर सकते हैं -mtime . के बजाय ।
find /path/to/files/* -mmin +30 -exec rm {} \;
उपरोक्त उदाहरण 30 मिनट से अधिक पुरानी फ़ाइलों को हटा देगा।
इसे एक स्क्रिप्ट में बनाना
इसे लिखने के बजाय, आप इसे एक स्क्रिप्ट में बना सकते हैं
#!/bin/bash find /path/to/files/* -mtime +7 -exec rm {} \;
उपरोक्त स्निपेट को एक फ़ाइल में सहेजें (नाम deletescript.sh, उदाहरण के लिए), और फिर इसे चलाकर कहा जा सकता है:
./deletescript.sh
यदि आप इसे कहीं से भी चलाना चाहते हैं तो आप कमांड के लिए एक उपनाम भी बना सकते हैं।
पुरानी फाइलों को हटाना शेड्यूल करना
यदि आप एक निर्धारित अंतराल पर कमांड को स्वचालित रूप से चलाना चाहते हैं, तो इसे अपने crontab . में जोड़ें . क्रोंटैब फ़ाइल वह जगह है जहाँ उपयोगकर्ता के निर्धारित कार्यों को लिनक्स में रखा जाता है, और इसे चलाकर संपादित किया जा सकता है:
crontab -e
उपरोक्त को चलाने पर, क्रोंटैब संपादक प्रदर्शित होगा। हर दिन स्क्रिप्ट चलाने के लिए बस निम्नलिखित को फ़ाइल में जोड़ें:
@daily find /path/to/files/* -mtime +7 -exec rm {} \;ढूंढें