2015-02-16 4 views
5

मुझे 2 साल से अधिक पुरानी निर्देशिका में किसी भी फ़ाइल को हटाने की आवश्यकता है। यह बहुत महत्वपूर्ण है कि मैं नवीनतम फाइलें रखता हूं और पुरानी फाइलों को हटा देता हूं।3 साल से अधिक पुरानी फ़ाइलों को हटाएं

मैंने इसे खोज और पाया है।

find /path/to/files* -mtime +365 -exec rm {} \; 

क्या मैं सिर्फ संख्या को गुणा कर सकता हूं?

find /path/to/files* -mtime +1095 -exec rm {} \; 

क्या कोई स्विच जोड़ने का कोई तरीका है जो फ़ाइल नाम को स्क्रीन पर प्रिंट करता है क्योंकि इसे हटा देता है? यह सुनिश्चित करने के लिए कि मैं क्या कर रहा हूं?

find /rec -mtime +365 -print0 | xargs -0 rm -f 

इन दोनों के बीच एक बड़ा अंतर है:

मैं भी इस पाया है? क्या यह दूसरे से बढ़िया है? मैंने जो पढ़ा है वह कहता है कि xargs तेज है। क्या मैं mtime संख्या को दूसरे या तीसरे वर्ष में गुणा करने में सक्षम हूं?

और अंततः मैं कोड को स्थानांतरित करने में सक्षम हूं क्योंकि यह एक क्रॉन नौकरी में है जो दैनिक चल सकता है?

धन्यवाद!

+2

मतदाताओं को बंद करें, यह स्पष्ट रूप से प्रोग्रामिंग से संबंधित है। लिनक्स का उल्लेख करने वाले प्रत्येक प्रश्न सर्वरफॉल्ट पर नहीं है। – Blorgbeard

+0

क्षमा करें मैंने इसे गलत जगह पर पोस्ट किया है। –

+0

आपने नहीं किया। मतदाता मत थोड़ा उत्साही थे। आपका प्रश्न अब दोबारा खोला गया है – Blorgbeard

उत्तर

4

क्या मैं सिर्फ संख्या को गुणा कर सकता हूं?

find /path/to/files -mtime +1095 -exec rm {} \; 

हां। और "गूंज" इससे पहले कि आप

find /path/to/files -mtime +1095 -print 

फिर -exec rm {} \; साथ संस्करण को निकालने फ़ाइलें निकालने के लिए (जब आप तैयार हों)।

+0

धन्यवाद यह बहुत अच्छा काम करता है! –

0
find /path/to/files* -mtime +1095 -exec rm {} \; 

यह ठीक काम करना चाहिए, तो आप बस फ़ाइलों को आदेश से पाए जाते हैं सूचीबद्ध करके इस बात का एक रन एक सूखी चला सकते हैं: हालांकि मैं भी एक में जोड़ना होगा

find /path/to/files* -mtime +1095 -exec ls {} \; 

सुरक्षा के लिए यह सुनिश्चित करने के लिए टाइप करें कि अन्य चीजें हटाई नहीं जाएंगी:

find /path/to/files* -type f -mtime +1095 -exec rm {} \; 
1

आपके प्रश्न के दूसरे भाग का उत्तर देने के लिए।

हां -exec या xargs का उपयोग करने में एक बड़ा अंतर है। -exec प्रत्येक फ़ाइल के लिए आरएम की एक नई प्रक्रिया शुरू करता है। यह बहुत अधिक ओवरहेड बनाता है और यदि आप बहुत सारी फाइलें हटाते हैं तो सिस्टम को गंभीरता से धीमा कर सकते हैं।

xargs केवल उतनी ही आरएम प्रक्रियाओं को आवश्यकतानुसार बनाता है, क्योंकि यह कमांड लाइन बनाता है जिसमें जितनी अधिक हो सके फाइलें होती हैं। तो केवल कुछ आरएम प्रक्रियाएं बनाई गई हैं।

लेकिन दोनों डिलीट से बेहतर हैं, क्योंकि हटाएं

+0

क्या आप समझा सकते हैं कि डिलीट क्यों असुरक्षित है? – user944849

संबंधित मुद्दे