कुछ उपनिर्देशिकाओं के लिए खोज-कमान


17

चलो कहते हैं कि मैं एक निर्देशिका है dirतीन उप निर्देशिकाओं के साथ dir1.. dir3। और अंदर मेरे पास कई फाइलें और अन्य उपनिर्देशिकाएं हैं।

मैं एक फ़ाइल के लिए खोज *.cकरना चाहता हूं, समाप्त करने के साथ कहता हूं , लेकिन मैं केवल उपनिर्देशिका "dir / dir2" और उसके सभी उपनिर्देशिकाओं में खोजना चाहूंगा। मैं इसे कैसे तैयार कर सकता हूं?

मुझे लगता है dir/मैं में हूँ :

find . -name "*.c"

सभी निर्देशिकाओं में खोज करने के लिए।

मैं केवल कैसे तक सीमित रहूं dir2?

जवाबों:


11

खोजें किसी भी मान्य पथ को स्वीकार करेंगे

find ./dir2 -name '*.c'

चाल चलनी चाहिए

यदि dirनिर्देशिका है /home/user/dirतो आप पूरा रास्ता ढूंढ सकते हैं

find /home/user/dir/dir2 -name '*.c'

18

आप इसके स्थान पर -pathपैरामीटर का उपयोग भी कर सकते हैं :find-name

find . -path "dir2/*.c"

यह आपको फ़ाइलों को खोजने की अनुमति दे सकता है, dir2भले ही dir2वह प्रत्यक्ष उपनिर्देशिका, ईजी न हो:

# find . -path "*/dir2/*.c"
./dir_a/dir2/file.c
./dir_b/dir2/file.c

4

तुम कर सकते हो find dir2 -name '*.c'

आप भी कर सकते हैं (cd dir2; find -name '*.c')

यदि आप dir1 और dir3 को देखना चाहते हैं, लेकिन dir2 को नहीं, तो आप कर सकते हैं find {dir1,dir3} -name '*.c'


3
अंतिम आदेश में, ब्रेसिज़ की आवश्यकता नहीं है। find dir1 dir3 -name \*.cठीक काम करता है।
कीथबी

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