पुनरावर्ती रूप से `टच` फाइलें कैसे?


40

मुझे लगभग 5000 फ़ाइलों के टाइमस्टैम्प को बदलने की आवश्यकता है।

टाइपिंग touch file1.txt, touch file2.txtमुझे हमेशा के लिए ले जाएगा।

वहाँ की तरह कुछ करने का एक तरीका है touch -R *?


1
क्या आपका यह मतलब था touch file{1..3}.txt?
अविनाश राज

2
आपने निर्दिष्ट नहीं किया कि आप किस शेल का उपयोग कर रहे हैं, लेकिन zsh के साथ, touch **/*सुविधाजनक है।
मार्क ग्लिससे

@Marc Glisse ध्यान रखें कि तर्क सूची आसानी से बहुत लंबी हो जाती है।
bac0n

बैश में आपको ग्लोबस्टार सेट करने की आवश्यकता है इससे पहले कि आप स्पर्श का उपयोग कर सकते हैं **
बेकन

जवाबों:


71

आप findअपनी सभी फ़ाइलों को खोजने के लिए कमांड का उपयोग कर सकते हैं और उपयोग करने वाली touchप्रत्येक मिली फ़ाइल पर निष्पादित कर सकते हैं-exec

find . -type f -exec touch {} +

यदि आप केवल टेक्स्ट फ़ाइलों के लिए अपना परिणाम फ़िल्टर करना चाहते हैं, तो आप उपयोग कर सकते हैं

find . -type f -name "*.txt" -exec touch {} +

17
मैं उपयोग करने का सुझाव था -execकी +टर्मिनेटर (बजाय \;)। यह प्रत्येक touchउदाहरण (सिस्टम तर्क सीमा तक) पर कई तर्कों को जंजीर देगा और इसलिए बहुत कम (और शायद तेज़ होगा) बाहर निकल जाएगा।
ओली


2
और एक सूखी रन के लिए, बस -exec touch {} +भाग को छोड़ दें , और यह आपके टर्मिनल पर प्रिंट करेगा कि इसका क्या प्रभाव होगा
एलेक्स

5
धन्यवाद, हालांकि मुझे लगता है कि 'खोज' उनके पहले पैरामीटर को याद कर रही है। find . -type f -exec touch {} +
गिल्ट्सल

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