मैं एक पैटर्न से मेल खाती फ़ाइलों को कैसे पुनरावर्ती कर सकता हूं


8

मेरे ~ / डॉक्स निर्देशिका के भीतर, मैं .txt के साथ समाप्त होने वाली सभी फ़ाइलों को "स्पर्श" करना चाहता हूं

मैं यह कैसे कर सकता हूँ?

जवाबों:


20

के साथ find:

find ~/docs -name "*.txt" -exec touch {} \;
  • आप में खोजें ~/docs
  • nameविकल्प सभी से मेल खाएगी txtफ़ाइलें -  execआदेश निष्पादित करेंगे touchफ़ाइल नाम है, जिसमें एवजी है पर{}
  • \;आदेश समाप्त होता है और touchप्रत्येक फ़ाइल के लिए एक बार कॉल किया जाएगा

ध्यान दें:

  • थोड़ी भिन्नता, \+अंत में एक ही touchबार में इन सभी फाइलों पर चलने के लिए एक एकल कमांड का निर्माण करती है । यह सभी आदेशों के साथ संभव नहीं है, लेकिन यह आपके लिए काम करता है touchऔर आपको कुछ कॉल बचाता है यदि आपके पास बहुत सारी फाइलें हैं जो प्रभावित होती हैं।

4
{} \+यहां बेहतर होगा ... touchअपनी कमांड लाइन पर कई फ़ाइलनामों को संभाल सकता है, इसलिए उदाहरण के लिए, 10 हजार फ़ाइलों और {} \; 10 हजार कॉल के साथ किया जाएगा touch... उपयोग केवल एक बार {} \+कॉल करेगा touch(उपलब्ध स्मृति के आधार पर) ... यहां खोज के मैन-पेज का एक अंश है -exec command {} + ... The command line is built in much the same way that xargs builds its command lines:। man findप्रलेखन में अधिक विवरण है ।
पीटर।

@ पीटर। सच, अन्य वाक्यविन्यास का उपयोग करने की सिर्फ मेरी आदत है।
बजे

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