यह आपके लिए पुनरावर्ती करेगा:
find /path/to/base/dir/* -type d -ctime +10 -exec rm -rf {} \;
स्पष्टीकरण:
find: फाइल / निर्देशिका / लिंक आदि खोजने के लिए यूनिक्स कमांड
/path/to/base/dir: अपनी खोज शुरू करने के लिए निर्देशिका।
-type d: केवल निर्देशिका खोजें
-ctime +10: केवल 10 दिनों से अधिक पुराने संशोधन समय वाले लोगों पर विचार करें
-exec ... \;: के लिए ऐसे प्रत्येक परिणाम नहीं मिला, में निम्न आदेश कर ...
rm -rf {}: पुनरावर्ती बल निर्देशिका को हटा दें; वह {}भाग वह होता है जहाँ खोज परिणाम पिछले भाग से प्रतिस्थापित हो जाता है।
वैकल्पिक रूप से, उपयोग करें:
find /path/to/base/dir/* -type d -ctime +10 | xargs rm -rf
जो थोड़ा अधिक कुशल है, क्योंकि यह निम्नलिखित है:
rm -rf dir1 dir2 dir3 ...
विरोध के रूप में:
rm -rf dir1; rm -rf dir2; rm -rf dir3; ...
में के रूप में -execविधि।
के आधुनिक संस्करणों के साथ find, आप के ;साथ की जगह ले सकते हैं +और यह xargsआपके लिए कॉल के बराबर काम करेगा , प्रत्येक निष्पादन प्रणाली कॉल पर जितनी फाइलें फिट होंगी, उतने पास करें:
find . -type d -ctime +10 -exec rm -rf {} +
findबिना नाम देखे ही ऐसा कर सकते थे ...