15 सेकंड से अधिक नई लेकिन 2 सेकंड से अधिक पुरानी फ़ाइलें खोजें


17

मैं 15 सेकंड से अधिक लेकिन 2 सेकंड से अधिक पुरानी फ़ाइलें ढूंढना चाहता हूं। यहाँ वह स्क्रिप्ट है जिसका उपयोग मैं वर्तमान में 15 सेकंड से अधिक नई फ़ाइलों के लिए कर रहा हूँ:

find /my/directory -name '*.jpg' -not -newermt '-15 seconds'

कोई भी मदद बहुत ही सराहनीय होगी


2
आप कौन से ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं? findकार्यान्वयन में अंतर हैं ।
terdon

क्या फ़ाइल को ठीक 2 सेकंड पहले मिलान किया जाना चाहिए? ठीक 15 सेकंड पहले संशोधित फ़ाइल के बारे में क्या?
मिकेल

स्क्रिप्ट शुरू होने या समाप्त होने के समय 2 सेकंड से अधिक नया?
स्टीफन चेज़लस

@ मिकेल, यह शायद अप्रासंगिक है क्योंकि आजकल घड़ियों में नैनोसेकंड रिज़ॉल्यूशन होता है।
स्टीफन चेज़लस

1
ठीक है ... चूंकि कोई और नहीं पूछ रहा है ... @ Yllier123 आपको 2 <x <15 सेकंड के बीच बनाई गई फ़ाइलों को खोजने की आवश्यकता क्यों है? मैं सिर्फ उत्सुक हूँ।
सी बाउर

जवाबों:


17

आप उनका पीछा करके कई विधेयकों को जोड़ सकते हैं।

वहाँ कोई नहीं है -oldermt, लेकिन आप उस के रूप में लिख सकते हैं -not -newermt

तुम्हें चाहिए:

  • -newermt '-15 seconds' कहने के लिए फ़ाइल 15 सेकंड से कम पुरानी है, और
  • -not -newermt '-2 seconds' कहने के लिए कि फ़ाइल 2 सेकंड से अधिक पुरानी है

प्रयत्न:

find /my/directory -newermt '-15 seconds' -not -newermt '-2 seconds'

या, POSIX आज्ञाकारी होना:

find /my/directory -newermt '-15 seconds' \! -newermt '-2 seconds'

इसके अलावा, बस आप (और अन्य पाठक) जागरूक हैं, "नया" का मतलब है कि हाल ही में संशोधित किया गया है, हाल ही में नहीं बनाया गया है।


3
अच्छा लगा। ध्यान दें कि -not -newermt '-2 seconds'2 सेकंड पुरानी फाइलों से भी मेल खाएगा। -not -newermt '3 seconds'उन लोगों को भी बाहर करने के लिए उपयोग करें ।
terdon

1
हाँ, किनारे के मामले हमेशा मजेदार होते हैं। मुझे वास्तव में यकीन नहीं है कि इन तुलनाओं के लिए यह किस संकल्प का उपयोग करता है। मेरी धारणा यह है कि कुछ भी जो ~ २.००००००००१ सेकंड पहले संशोधित किया गया है वह एक मैच है, लेकिन यह भी आपके फाइल सिस्टम और ऑपरेटिंग सिस्टम पर निर्भर करेगा।
मिकेल

अच्छा बिंदु, मुझे पता नहीं है कि संकल्प क्या है। मैं बस के साथ परीक्षण किया touch -d "2 seconds ago" file; find . -newermt '-15 seconds' -not -newermt '-2 seconds'और मिल गया file
terdon

@terdon खैर, यह इस बात पर निर्भर करता है कि क्या टाइमस्टैम्प का रिज़ॉल्यूशन एक सेकंड से अधिक सटीक है; यदि यह सिस्टम, फाइलसिस्टम पर निर्भर करेगा, और एक ही फाइल सिस्टम पर फाइलों के बीच भिन्न हो सकता है यदि यह कई अलग-अलग मशीनों द्वारा उपयोग किया जाता है।
ब्लैकलाइट शाइनिंग

"नया" का अर्थ है "हाल ही में अधिक"। यह "एम" है जिसका अर्थ है "संशोधित"।
ऑरेंजडॉग सेप

4

आपने अपने ओएस का उल्लेख नहीं किया था ...।

यह फ्रीबीएसडी से या जैसी आधुनिक खोज कार्यान्वयन के साथ ठीक काम करता है sfind

find /my/directory -name '*.jpg' -mtime -15s -mtime +2s

Sfind Schily टूल्स का हिस्सा है: http://sourceforge.net/projects/schilytools/files/

चेतावनी: मैंने अभी एक समस्या की खोज की है sfind। यदि -mtimeतर्क 60 से कम हैं, तो यह सही ढंग से काम नहीं करेगा क्योंकि वर्तमान में फ़ाइल समय की तुलना 60 सेकंड के स्टैम्प से की जाती है जो कि मूल रूप से वर्ष स्विच के लिए गणना की गई थी -ls

BTW: -notसे संबंधित नहीं है find, यह एक गैर-पोर्टेबल GNUism है।


1
नहीं है bashटैग ... तो पर्यावरण Cygwin डेबियन GNU / हर्ड हो सकता है, bashFreeBSD या सोलारिस, ... ;-) पर चल रहा है
phk

जीएनयू के लिए find, ऐसा लगता है कि दशमलव, हालांकि पागल, एक वर्कअराउंड के रूप में इस्तेमाल किया जा सकता है।
आर्थर 2 ई 5

POSIX खोज है !के रूप में -not के लिए! expression । तो, कोई बड़ी बात नहीं।

@phk यही कारण है कि मैं विधि है कि एक बेहतर मानक के साथ काम करता है उल्लेख primaryसे findलोगों को सूचित करने की कोई जरूरत के लिए हमेशा नए जोड़ने है कि वहाँ primariesकी कार्यक्षमता बढ़ाने के लिए सक्षम होने के लिए लगता है। BTW: में एक निश्चित libfindप्रकाशित किया गया है schily tools
स्किल

@ BinaryZebra की समस्या यह है कि gfindइसमें -notउपनाम जोड़ने का काम किया गया था । इसकी कभी जरूरत नहीं पड़ी और इसकी मौजूदगी को रणनीति में एक वेंडर लॉक के रूप में देखा जा सकता है।
स्किल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.