परिचय
क्या आपने कभी सोचा है कि किसी निर्देशिका में उन फ़ाइलों को कैसे खोजा जाए जिन्हें लंबे समय से छुआ नहीं गया है? चाहे आप पुरानी फ़ाइलें साफ़ कर रहे हों, डेटा संग्रहीत कर रहे हों, या बासी फ़ाइलों की जाँच कर रहे हों, Linux का find कमांड आपका सबसे अच्छा समाधान है। इस टिप में, हम आपको दिखाएंगे कि एक सरल लेकिन शक्तिशाली कमांड का उपयोग करके Linux में फ़ाइलों को उनकी आयु के अनुसार कैसे सूचीबद्ध किया जाए।
कमांड
find /path/to/files -type f -name '*.jpg' -mtime +30 -exec ls -l {} \;
यह कमांड आपको फ़ाइलों को उनकी अंतिम संशोधन तिथि के आधार पर खोजने, उन्हें प्रकार या नाम के अनुसार फ़िल्टर करने और उनके बारे में विस्तृत जानकारी प्रदर्शित करने देता है।
कमांड को समझें
1. /path/to/files
यह उस निर्देशिका को निर्दिष्ट करता है जिसमें खोज करनी है। इसे उस वास्तविक फ़ोल्डर पथ से बदलें जिसे आप खोजना चाहते हैं।
- उदाहरण: यदि आप अपनी फ़ोटो लाइब्रेरी में खोजना चाहते हैं, तो उपयोग करें
~/Pictures.
2. -type f
-type विकल्प यह निर्दिष्ट करता है कि किस प्रकार की चीज़ों की खोज करनी है।
f: केवल फ़ाइलों को संदर्भित करता है (निर्देशिकाओं को अनदेखा करता है)।
3. -name '*.jpg'
यह फ़ाइल नामों या एक्सटेंशन के आधार पर परिणामों को फ़िल्टर करता है।
- उदाहरण:
*.jpgसे समाप्त होने वाली फ़ाइलें खोजता है, जैसे.jpg. - आप इसे अन्य पैटर्न से बदल सकते हैं, जैसे
*.txtपाठ फ़ाइलों के लिए या*.logलॉग फ़ाइलों के लिए है।
4. -mtime +30
यह फ़ाइलों को उनकी आयु के आधार पर फ़िल्टर करने की कुंजी है।
+30: उन फ़ाइलों को खोजता है जिन्हें अंतिम बार 30 दिन से अधिक समय पहले संशोधित किया गया था।30को अपनी आवश्यकताओं के अनुसार किसी भी संख्या से बदलें:- 1 वर्ष: उपयोग करें
-mtime +365. - 1 सप्ताह: उपयोग करें
-mtime +7.
- 1 वर्ष: उपयोग करें
5. -exec ls -l {} \;
यह Linux को बताता है कि मिली हुई फ़ाइलों के साथ क्या करना है।
-exec: प्रत्येक फ़ाइल पर एक कमांड चलाता है।ls -l: प्रत्येक फ़ाइल के बारे में विस्तृत जानकारी सूचीबद्ध करता है (जैसे, आकार, अनुमतियाँ, स्वामी और अंतिम संशोधन तिथि)।{}: मिली हुई प्रत्येक फ़ाइल के लिए प्लेसहोल्डर।\;: कमांड के अंत का संकेत देता है।
प्रो टिप
कमांड को ls -l चलाए बिना आज़माना चाहते हैं? -exec वाला भाग छोड़ दें:
find /path/to/files -type f -name '*.jpg' -mtime +30
इससे अतिरिक्त विवरण के बिना केवल फ़ाइल पथ सूचीबद्ध होंगे।
इस कमांड का उपयोग क्यों करें?
find कमांड अविश्वसनीय रूप से बहुमुखी है और सिस्टम रखरखाव कार्यों के लिए उपयोगी है:
- डिस्क स्थान खाली करें: पुरानी फ़ाइलों की पहचान करें और उन्हें हटाएं।
- पुराना डेटा संग्रहीत करें: महीनों या वर्षों से न छुई गई फ़ाइलों को बैकअप संग्रहण में ले जाएं।
- बासी फ़ाइलों की निगरानी करें: महत्वपूर्ण निर्देशिकाओं में पुरानी फ़ाइलों की जाँच करें।
व्यावहारिक उदाहरण
उदाहरण 1: पुराने दस्तावेज़ खोजें
.docx फ़ाइलों को Documents फ़ोल्डर में खोजें, जिन्हें 90 दिन से अधिक समय से संशोधित नहीं किया गया है:
find ~/Documents -type f -name '*.docx' -mtime +90 -exec ls -l {} \;
उदाहरण 2: 6 महीने से अधिक पुरानी बड़ी फ़ाइलें खोजें
100MB से बड़ी फ़ाइलें यहाँ खोजें: /home/user में, जिन्हें 6 महीने से अधिक समय से संशोधित नहीं किया गया है:
find /home/user -type f -size +100M -mtime +180 -exec ls -lh {} \;
-size +100M: 100MB से बड़ी फ़ाइलों को फ़िल्टर करता है।ls -lh: फ़ाइल आकारों को मानव-पठनीय प्रारूप में प्रदर्शित करता है (जैसे, MB, GB)।
उदाहरण 3: पुरानी PDF फ़ाइलें खोजें
.pdf फ़ाइलों को /home/user/Downloads में खोजें, जिन्हें पिछले एक वर्ष में संशोधित नहीं किया गया है:
find ~/Downloads -type f -name '*.pdf' -mtime +365 -exec ls -l {} \;
उदाहरण 4: हाल ही में संशोधित फ़ाइलें खोजें
.txt फ़ाइलों को खोजें, जो पिछले 7 दिनों में संशोधित हुई हैं, स्थान: /var/www:
find /var/www -type f -name '*.txt' -mtime -7 -exec ls -l {} \;
-mtime -7: पिछले 7 दिनों में संशोधित फ़ाइलों को खोजता है।
उदाहरण 5: पुरानी अस्थायी फ़ाइलें हटाएं
इस स्थान की फ़ाइलें हटाएं: /tmp में, जिन्हें 30 दिन से अधिक समय से संशोधित नहीं किया गया है:
find /tmp -type f -mtime +30 -exec rm {} \;
rm: फ़ाइलों को हटाता है।- चेतावनी: सावधानी से उपयोग करें क्योंकि इससे फ़ाइलें स्थायी रूप से हट जाती हैं।
उदाहरण 6: पुरानी मीडिया फ़ाइलें संग्रहीत करें
.mp4 फ़ाइलों को, जो 60 दिन से अधिक पुरानी हैं, यहाँ से ~/Videos से संग्रह फ़ोल्डर में ले जाएं:
find ~/Videos -type f -name '*.mp4' -mtime +60 -exec mv {} ~/Archives/ \;
mv: फ़ाइलों को निर्दिष्ट फ़ोल्डर में ले जाता है।
उदाहरण 7: किसी विशिष्ट समय सीमा में बनाई गई फ़ाइलें खोजें
.log फ़ाइलों को खोजें, जो 30 से 60 दिन पहले बनाई गई थीं, स्थान: /var/log:
find /var/log -type f -name '*.log' -mtime +30 -mtime -60 -exec ls -l {} \;
-mtime +30: 30 दिन से अधिक पुरानी फ़ाइलें।-mtime -60: पिछले 60 दिनों में संशोधित फ़ाइलें।
उदाहरण 8: 1 सप्ताह से अधिक पुरानी खाली फ़ाइलें खोजें
इस स्थान में खाली फ़ाइलें खोजें: /home/user में, जिन्हें पिछले सप्ताह में संशोधित नहीं किया गया है:
find /home/user -type f -empty -mtime +7 -exec ls -l {} \;
-empty: शून्य आकार वाली फ़ाइलों को फ़िल्टर करता है।
उदाहरण 9: पहुँच समय के आधार पर फ़ाइलें खोजें
.png फ़ाइलों को /var/www/html में खोजें, जिन तक पिछले 90 दिनों में पहुँचा नहीं गया है:
find /var/www/html -type f -name '*.png' -atime +90 -exec ls -l {} \;
-atime: संशोधन समय के बजाय पहुँच समय के आधार पर फ़ाइलों को फ़िल्टर करता है।
उदाहरण 10: हाल ही में बनाई गई फ़ाइलें खोजें
इस स्थान में फ़ाइलें खोजें: /home/user में, जो पिछले 3 दिनों में बनाई गई हैं:
find /home/user -type f -ctime -3 -exec ls -l {} \;
-ctime: निर्माण समय के आधार पर फ़ाइलों को फ़िल्टर करता है।
उदाहरण 11: अनुमतियों के आधार पर फ़ाइलें खोजें
इस स्थान में फ़ाइलें खोजें: /etc में, जिनके पास विशिष्ट अनुमतियाँ हैं (जैसे, दूसरों द्वारा लिखने योग्य):
find /etc -type f -perm /o+w -exec ls -l {} \;
-perm /o+w: दूसरों द्वारा लिखने योग्य फ़ाइलों को खोजता है।
उदाहरण 12: पिछले एक घंटे में संशोधित फ़ाइलें खोजें
इस स्थान में पिछले एक घंटे में संशोधित फ़ाइलें खोजें: /home/user/Documents:
find ~/Documents -type f -mmin -60 -exec ls -l {} \;
-mmin -60: पिछले 60 मिनट में संशोधित फ़ाइलों को फ़िल्टर करता है।
उदाहरण 13: विशिष्ट स्वामित्व वाली फ़ाइलें खोजें
उपयोगकर्ता jose के स्वामित्व वाली फ़ाइलें इस स्थान में खोजें: /var/log, जिन्हें 90 दिन से अधिक समय से संशोधित नहीं किया गया है:
find /var/log -type f -user jose -mtime +90 -exec ls -l {} \;
-user jose: निर्दिष्ट उपयोगकर्ता के स्वामित्व वाली फ़ाइलों को फ़िल्टर करता है।
उदाहरण 14: विशिष्ट निर्देशिकाओं को छोड़ें
.jpg फ़ाइलों को /home/user में 30 दिन से अधिक पुरानी फ़ाइलें, इनको छोड़कर: Downloads फ़ोल्डर:
find /home/user -type f -name '*.jpg' -mtime +30 -not -path "~/Downloads/*" -exec ls -l {} \;
-not -path: निर्दिष्ट निर्देशिका में फ़ाइलों को छोड़ देता है।
उदाहरण 15: किसी विशिष्ट तिथि को संशोधित फ़ाइलें खोजें
इस स्थान में ठीक 10 दिन पहले संशोधित फ़ाइलें खोजें: /home/user:
find /home/user -type f -mtime 10 -exec ls -l {} \;
-mtime 10: ठीक 10 दिन पहले संशोधित फ़ाइलों को खोजता है।
उदाहरण 16: विशिष्ट एक्सटेंशन वाली फ़ाइलें खोजें
.zip और .tar.gz फ़ाइलों को खोजें, जो 60 दिन से अधिक पुरानी हैं, स्थान: /backups:
find /backups -type f \( -name '*.zip' -o -name '*.tar.gz' \) -mtime +60 -exec ls -l {} \;
\( -name '*.zip' -o -name '*.tar.gz' \): कई फ़ाइल एक्सटेंशन खोजता है।
निष्कर्ष
Linux का find कमांड फ़ाइलों को उनकी आयु, प्रकार और नाम के आधार पर प्रबंधित करने के लिए एक शक्तिशाली उपकरण है। चाहे आप डिस्क स्थान खाली कर रहे हों, पुराना डेटा संग्रहीत कर रहे हों, या बासी फ़ाइलों की निगरानी कर रहे हों, यह कमांड आपको अपनी निर्देशिकाओं पर पूर्ण नियंत्रण देता है।
आज ही इसे आज़माएं, और अपने Linux कौशल को अगले स्तर पर ले जाएं!