मैं सभी सबफ़ोल्डरों में एक वाइल्ड कार्ड नाम कैसे खोज सकता हूं?


जवाबों:


40

आप उपयोग कर सकते हैं find। यदि, उदाहरण के लिए, आप abcdफ़ाइल नाम में मौजूद सभी फ़ाइलों और निर्देशिकाओं को खोजना चाहते थे , तो आप चला सकते हैं:

find . -name '*abcd*'

12

Zsh:

ls -ld -- **/*abcd*

Ksh93:

set -o globstar     # put this line in your ~/.kshrc
ls -ld -- **/*abcd*

बैश ≥4:

shopt -s globstar   # put this line in your ~/.bashrc
ls -ld -- **/*abcd*

यश:

set -o extendedglob # put this line in your ~/.yashrc
ls -ld -- **/*abcd*

tcsh:

set globstar
ls -ld -- **/*abcd*

मछली:

ls -ld -- **abcd*

(उन गोले में से कुछ से सावधान रहें, जब निर्देशिका पेड़ उतरते हैं, तो वे सहानुभूति का पालन करेंगे; कुछ ऐसे जो पसंद नहीं करते zsh, yashया tcshउन्हें ***/*abcd*करना पड़ता है)।

पोर्टेबल (बहुत पुरानी प्रणालियों को छोड़कर; ओपनबीएसडी ने एक लंबा समय लिया लेकिन अंततः exec … +5.1 से समर्थन करता है):

find . -name '*abcd*' -exec ls -ld {} +

POSIX नहीं, लेकिन * BSD, Linux, Cygwin, BusyBox पर काम करता है:

find . -name '*abcd*' -print0 | xargs -0 ls -ld

ध्यान दें कि कुछ बीएसडी को छोड़कर, यदि कोई मिलान फ़ाइल नहीं मिली ls -ldहै, तो बिना तर्क के चलाया जाएगा, इसलिए सूची होगी .। कुछ xargsकार्यान्वयन के साथ , आप -rउस के आसपास काम करने के विकल्प का उपयोग कर सकते हैं ।


शॉप-एस ग्लोबस्टार क्या करता है ??
कैप्यबरेटेट

@ user2429920 gnu.org/software/bash/manual/... और के माध्यम से क्लिक gnu.org/software/bash/manual/bash.html#The-Shopt-Builtin तो के लिए नीचे स्क्रॉल globstar
गिल्स एसओ- बुराई को रोकें '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.