यूनिक्स में अंतिम घंटे में बनाई गई फ़ाइलों को कैसे ढूंढें


135

यूनिक्स में अंतिम घंटे में बनाई गई फ़ाइलों को कैसे ढूंढें

जवाबों:


213

अगर खोज करने की हिम्मत है srch_dirतो या तो

$ find srch_dir -cmin -60 # change time

या

$ find srch_dir -mmin -60 # modification time

या

$ find srch_dir -amin -60 # access time

अंतिम घंटे में बनाई गई, संशोधित या एक्सेस की गई फ़ाइलों को दिखाता है।

सुधार: समय परिवर्तन नोड समय के लिए है (अनिश्चित हालांकि, कृपया मुझे सही करें)


2
यह महान और सभी है, लेकिन ये झंडे सोलारिस पर मौजूद नहीं हैं findजिनका मैं उपयोग कर रहा हूं। ओपी ने कहा यूनिक्स और मुझे लगता है कि ये केवल लिनक्स हैं।
जिग्गी

12
चाल नकारात्मक समय मान का उपयोग करने के लिए है ! यह मैन पेज में इतना स्पष्ट नहीं है।
मटका

@ जिगी आयुष का जवाब हैक (आधारित -newer) है जो सोलारिस पर काम करना चाहिए।
डेविड मोल्स

3
निर्माण समय नहीं है, लेकिन परिवर्तन समय! बस मेरे .config dir कारण को टेस्ट रन पर डिलीट कर दिया गया जो कि पिछले X मिनटों में बदल नहीं गया था और जब मैंने rm किया था तो .... इसलिए शायद इसे एडिट करें ...!
बैडमास्टर

मुझे अभी भी लगता है कि पहले उदाहरण की टिप्पणी में एक संशोधन की आवश्यकता है। "परिवर्तन का समय" फ़ाइल स्थिति है, फ़ाइल डेटा नहीं
केसी बाल्ट्ज़

24

UNIX filesystems (आम तौर पर) सृजन समय स्टोर नहीं करते हैं। इसके बजाय, केवल एक्सेस समय, (डेटा) संशोधन समय और (इनोड) परिवर्तन समय हैं।

कहा जा रहा है, findकी -atime -mtime -ctimeभविष्यवाणी है:

$ आदमी 1 मिल गया
...
-सीएम   एन
        यदि अंतिम परिवर्तन का समय है तो प्राथमिक सच के रूप में मूल्यांकन करेगा
        फ़ाइल स्थिति की जानकारी आरंभीकरण समय से घटा दी गई है,
        86400 (किसी भी शेष छूटे हुए) द्वारा विभाजित, n है।
...

इस प्रकार find -ctime 0वह सब कुछ पा लेता है जिसके लिए इनोड बदल गया है (जैसे फ़ाइल निर्माण शामिल है, लेकिन लिंक की गिनती और अनुमतियाँ और परिवर्तन को फ़ाइल करना भी शामिल है) एक घंटे से कम समय पहले।


86400 सेकंड एक दिन है , एक घंटा नहीं। इस प्रकार -ctimeआदि का तर्क घंटों की बजाय दिनों की इकाइयों में है ।
गेलॉन

12

बाहर की जाँच के लिए इस लिंक और फिर अपने आप को बाहर करने में मदद।

मूल कोड है

#create a temp. file
echo "hi " >  t.tmp
# set the file time to 2 hours ago
touch -t 200405121120  t.tmp 
# then check for files
find /admin//dump -type f  -newer t.tmp -print -exec ls -lt {} \; | pg

धन्यवाद, हालाँकि यह केवल t.tmp की खोज करेगा। क्या होगा अगर मैं आखिरी घंटे में बनाई गई सभी फाइलों को ढूंढना चाहता हूं।
अंकुर

2
अंकुर: यह एक अस्थायी फ़ाइल t.tmp बनाएगा और इसके निर्माण का समय 2 घंटे पहले सेट करेगा ... इसके बाद यह वर्तमान निर्देशिका में खोज करेगा जो सभी फाइलें t.tmp के बाद यानी पिछले 2 घंटों में बनाई गई थीं ..
आयुष

4
ठंडा!! हालांकि पहली आज्ञा आवश्यक नहीं है। touchयदि यह पहले से मौजूद नहीं है तो फ़ाइल बनाता है।
अमीर उवाल


3
sudo find / -Bmin 60

से manपेज:

-बीमिन एन

यह सच है कि फ़ाइल के इनोड निर्माण के समय और समय findशुरू होने के बीच का अंतर , अगले पूर्ण मिनट तक गोल हो जाता है, जो कि n मिनट है।

जाहिर है, आप कुछ अलग सेट करना चाह सकते हैं, लेकिन यह प्राथमिक अंतिम एन मिनटों में बनाई गई किसी भी फ़ाइल को खोजने के लिए सबसे अच्छा समाधान लगता है ।


find (GNU findutils) 4.6.0एक -Bविधेय नहीं है
ब्लॉक

0

अधिक जानकारी के लिए इस लिंक को देखें।

वर्तमान निर्देशिका में पिछले एक घंटे में बनाई गई फ़ाइलों को खोजने के लिए, आप -amin का उपयोग कर सकते हैं

खोजो। -आम -60 -type f

यह उन फाइलों को खोजेगा जो पिछले 1 घंटे में बनाई गई हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.