यह लेख आपको दिखाएगा कि दिए गए दिनों की संख्या से पुरानी फ़ाइलों को कैसे हटाएं (या घंटे/मिनट) मैन्युअल रूप से या Bash स्क्रिप्ट के माध्यम से स्वचालित रूप से। उदाहरण शामिल।
कुछ दिनों (या मिनट, या घंटे) से पुरानी फ़ाइलों को हटाने के लिए दो Linux कमांड का उपयोग किया जाता है – rm और find।
rm के साथ फ़ाइलें हटाना
सबसे पहले, rm कमांड। rm कमांड का उपयोग Linux में फ़ाइलों और डायरेक्टरी को हटाने के लिए किया जाता है। यहां इसके उपयोग के बारे में पूरा लेख है:
Linux में rm कमांड [उदाहरण के साथ]
rm को फ़िल्टर की गई फ़ाइलों की सूची पास करना
अगला घटक, find कमांड। find कमांड का उपयोग फ़ाइलों को मानदंडों के सेट के आधार पर खोजने के लिए किया जाता है – इस मामले में, फ़ाइल की उम्र (समय बीतने के बाद से इसे संशोधित किया गया था)। find कमांड पर हमारा लेख यहां है:
Linux में Find कमांड [उपयोगी उदाहरणों के साथ]
उन्हें एक साथ रखना – उदाहरण
find और rm का एक साथ उपयोग करना:
find /path/to/files/* -mtime +7 -exec rm {} \;
यहां क्या हो रहा है?
- find को डायरेक्टरी /path/to/files पर बुलाया जाता है
- -mtime विकल्प को find को +7 मान के साथ पास किया जाता है – अर्थात 7 दिन से अधिक पहले संशोधित फ़ाइलें
- exec विकल्प को find को प्रत्येक मिलान फ़ाइल के विरुद्ध चलाने के लिए कमांड के साथ पास किया जाता है
- rm को find में -exec विकल्प द्वारा बुलाया जाता है
- यह find को दी गई शर्तों से मेल खाने वाली सभी फ़ाइलों को हटा देगा
- लाइन के अंत में कर्ली ब्रेसिज़, स्लैश, और सेमीकोलन उस कमांड के अंत को सिग्नल करते हैं जो find को प्रत्येक मिलान फ़ाइल पर चलाना चाहिए
दिनों के बजाय घंटे, मिनट
दिनों के बजाय मिनटों को समय की इकाई के रूप में उपयोग करने के लिए, आप -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 फ़ाइल वह जगह है जहां Linux में उपयोगकर्ता के शेड्यूल किए गए कार्य रखे जाते हैं, और इसे निम्न चलाकर संपादित किया जा सकता है:
crontab -e
उपरोक्त चलाने पर, crontab एडिटर प्रदर्शित होगा। फ़ाइल में निम्न जोड़कर हर दिन स्क्रिप्ट चलाएं:
@daily find /path/to/files/* -mtime +7 -exec rm {} \;