एक निर्दिष्ट स्ट्रिंग के साथ फ़ाइल नाम के साथ सभी फाइलें ढूंढें?


148

मेरे पास इसमें लगभग 100000 फाइलों के साथ एक निर्देशिका है, और मैं निर्दिष्ट स्ट्रिंग के साथ शुरू होने वाली सभी फाइलों पर कुछ कार्य करना चाहता हूं, जो दसियों हजार फाइलों से मेल खा सकता है।

मैंने कोशिश की है

ls mystring*

लेकिन यह बैश त्रुटि के साथ 'बहुत सारे तर्क' देता है। मेरी अगली योजना का उपयोग करना था

find ./mystring* -type f

लेकिन यह एक ही मुद्दा है।

कोड की तरह कुछ देखने की जरूरत है

for FILE in `find ./mystring* -type f`
do
    #Some function on the file
done

एक के बजाय forपाश, आप पाइप चाहिए findमें while
अगली सूचना तक रोक दिया गया।

जवाबों:


277

उपयोग

find . -name 'mystring*'

10
और कुछ कार्य "खोज" निष्पादित करने के लिए - 'मिस्ट्रीिंग *' -exec [कमांड] "उदाहरण के लिए" खोजें "-।
Eldar

2
जहाँ {} फ़ाइल नाम :-) के लिए एक प्लेसहोल्डर है (इसलिए आप अपने कार्यों का निर्माण कर सकते हैं)
सर्जियो तुलेंत्सेव

1
यह स्ट्रिंग वाले सभी परिणाम लौटाता है ? द
ब्रायन जेड

7
... या find . -iname 'mystring*'केस असंवेदनशील खोज के लिए।
फ्रैंक नॉक

ओपी एक एकल निर्देशिका को संदर्भित करता है ताकि वर्तमान फ़ोल्डर में खोज को सीमित करने -maxdepth 1से पहले सम्मिलित किया जा -nameसके
जेकंटरबरी

27
ls | grep "^abc"  

सबरंग के साथ आपको शुरुआत में सभी फाइलें (जो कि विशेष रूप से ओपी की आवश्यकता होती है) देगा abc
यह केवल वर्तमान निर्देशिका पर कार्य करता है, जबकि findउप-फ़ोल्डरों में पुनरावर्ती रूप से कार्य करता है।

findकेवल अपनी स्ट्रिंग से शुरू होने वाली फ़ाइलों के लिए उपयोग करने के लिए

खोजो। -नाम 'एबीसी' *


4

यदि आप अपनी खोज को केवल उन फाइलों तक सीमित रखना चाहते हैं -type fजिन्हें आपको अपनी खोज में उपयोग करने के लिए विचार करना चाहिए

-inameकेस-असंवेदनशील खोज के लिए भी उपयोग करने का प्रयास करें

उदाहरण:

find /path -iname 'yourstring*' -type f

आप पाइप साइन या xargs के बिना परिणाम पर कुछ ऑपरेशन भी कर सकते हैं

उदाहरण:

फाइलों को खोजें और एमबी में उनका आकार दिखाएं

find /path -iname 'yourstring*' -type f -exec du -sm {} \;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.