मैं उस फ़ोल्डर की सभी फ़ाइलों को कैसे हटा सकता हूं जिसे एक निश्चित समय में एक्सेस नहीं किया गया है?


14

मैं एक रात का क्रॉन जॉब चलाना चाहता हूं जो एक सप्ताह या उससे अधिक समय तक एक्सेस न किए गए फ़ोल्डर की सभी फ़ाइलों को हटा देता है। बैश में ऐसा करने का सबसे कुशल तरीका क्या है?


2
findatime के आधार पर फ़िल्टर कर सकते हैं। Atime की "शुद्धता" noatimeबहुत कम से कम कॉन्फ़िगरेशन (देखें ) पर निर्भर करती है ।

जवाबों:


20

आप findउपकरण चाहते हैं ।

find folder -depth -type f -atime +7 -delete

(यह होगा हटाना सभी फ़ाइलें ( केवल नियमित रूप से लोगों को दिए गए फ़ोल्डर में, कोई पाइप, विशेष उपकरणों, निर्देशिका, सांकेतिक लिंक) और सभी सबडायरेक्टरियों (रिकर्सिवली) जहां पिछले उपयोग समय है से अधिक समय 7 दिन पहले।)


6
आप -type fयह सुनिश्चित करना चाहते हैं कि यह केवल फाइलों को हटा दे, संपूर्ण निर्देशिकाओं को नहीं।
शादुर

3

आप जांचना चाह सकते हैं कि tmpwatchक्रोन जॉब में क्या रखा जा सकता है। के साथ रोल करने की जरूरत नहीं है find। RHEL पर यह tmpwatchRPM में है।


यह निश्चित रूप से अधिक सुरुचिपूर्ण समाधान है, लेकिन मैं इसकी पोर्टेबिलिटी पसंद करता हूं find
ब्लेडरमिल्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.