सिस्टम पर x दिनों से अधिक पुरानी फ़ाइलों को ढूंढना एक व्यस्त डाउनबॉक्स के साथ छीन लिया गया है


9

मुझे विकास इकाई में 1 सप्ताह से अधिक पुरानी फ़ाइलों को खोजने और हटाने की आवश्यकता है। इस इकाई पर सीमित संख्या की उपयोगिताएँ उपलब्ध हैं। -mtime findका विधेय उपलब्ध नहीं है। मैं उन सभी फ़ाइलों की जांच कैसे करूं जो इस मामले में x दिनों से अधिक पुरानी हैं?


2
यह स्पष्ट नहीं है कि आपके पास " mtimeउपलब्ध नहीं है " का क्या मतलब है। यह एक उपयोगिता नहीं है जिसका नाम मैं पहचानता हूं।
Kusalananda

/ path / to / my / folder $ find -type f -mtime +7 delete find: unrecognized: -mtime
Ravi

आपके द्वारा उपयोग किए जा रहे linux के distro को साझा करें।
शिवा

3
ऐसा लगता है कि यह बिना बिजी किए बनाया गया है FEATURE_FIND_MTIME। है FEATURE_FIND_NEWERसक्षम? find -newerकाम करता है ? क्या आपकी testउपयोगिता या [आपके shसमर्थन की निर्मिति -nt?
स्टीफन चेजलस

1
आप इसके चारों ओर काम कर सकते हैं यदि आप उन touch -d/ date +%sऔर[ file -nt other-file ]
स्टीफन चेज़लस

जवाबों:


11

-mtimefind(के विपरीत -delete) का एक मानक विधेय है, लेकिन ऐसा लगता है कि आपके पास नीचे का एक छीन लिया गया संस्करण है busybox, जहां FEATURE_FIND_MTIMEसुविधा का निर्माण समय पर अक्षम किया गया है।

यदि आप इसे सक्षम करने के साथ बिजीबॉक्स का पुनर्निर्माण कर सकते हैं, तो आपको ऐसा करने में सक्षम होना चाहिए:

find . -mtime +6 -type f -exec rm -f {} +

या अगर FEATURE_FIND_DELETEयह भी सक्षम है:

find . -mtime +6 -type f -delete

यदि नहीं, तो अन्य विकल्पों का उपयोग उस फाइल पर किया जा सकता है find -newer(मान लिया गया FEATURE_FIND_NEWERहै) जो एक सप्ताह पुराने संशोधन समय के लिए सेट है।

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -newer ../ref -exec rm -f {} +

या यदि -newerउपलब्ध नहीं है, लेकिन sh'एस [का समर्थन करता है -nt:

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -exec sh -c '
    for f do
      [ "$f" -nt ../ref ] || printf "%s\0" "$f"
    done' sh {} + |
    xargs -0 rm -f

1
हां, बिजीबॉक्स यहां एक हल्का संस्करण था। फिर से बनाने के बाद, find . -mtime +6 -type f -exec rm {} \;मेरे लिए काम किया
रवि

2

से man find:

-टाइम एन

फ़ाइल को अंतिम बार n * 24 घंटे पहले एक्सेस किया गया था। यह पता लगाने के लिए कि फ़ाइल को पिछली बार कितने घंटे पहले एक्सेस किया गया था, किसी भी आंशिक भाग को अनदेखा किया गया है, इसलिए -atime +1 से मिलान करने के लिए, फ़ाइल को कम से कम दो दिन पहले एक्सेस किया जाना चाहिए।

-सीएम एन

फ़ाइल की स्थिति अंतिम बार n * 24 घंटे पहले बदल दी गई थी। समझने के लिए टिप्पणियों को देखें कि कैसे गोलाई फ़ाइल स्थिति परिवर्तन समय की व्याख्या को प्रभावित करती है।

उन फ़ाइलों के उपयोग के मामलों के आधार पर जिन्हें आप हटाना चाहते हैं, ये आपके लिए केवल अन्य विकल्प हैं find। क्यों mtimeउपलब्ध नहीं है? आप किस फाइलसिस्टम का उपयोग कर रहे हैं? क्या आपने कोई अन्य विकल्प खोजा?


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