2010-04-07 12 views

उत्तर

37

वे केवल वर्तमान निर्देशिका

find * -type f -print

में हैं कि तुम क्या चाहते है?

+0

मुझे पता था कि यह sed के साथ किया जा सकता है, लेकिन यह एक बेहतर समाधान है। धन्यवाद! – breadjesus

+0

अच्छा, कभी भी –

+12

के बारे में सोचा नहीं, यह उन नामों वाली फाइलों को याद करेगा जो एक अवधि के साथ शुरू होते हैं। – Sean

25

उपयोग sed

find . | sed "s|^\./||" 
+0

यह मेरा पसंदीदा समाधान है; यह POSIX- संगत है (व्यावहारिक रूप से हर जगह काम करता है, यहां तक ​​कि एम्बेडेड सिस्टम), बहुत कम, और अप्रत्याशित व्यवहार के परिणामस्वरूप असंभव है। यह स्वीकार्य उत्तर होना चाहिए। –

+5

इसे 'find -exec' के साथ कैसे जोड़ा जाएगा? – PaulrBear

+0

'find -exec sh -c "echo {} | sed's s^^ .; ||' \" ' या 'find -exec sh -c" sed's s^^ ./ | | ' <<< '{}' "\;' – xenithorb

10

इसे कम किया जा सकता है

find * -type f 
+0

रिक्त निर्देशिका में आदेश चलाए जाने पर त्रुटि रिपोर्ट को अनदेखा करने के लिए '2>/dev/null' के साथ बेहतर। – neevek

136

वर्तमान निर्देशिका के तहत केवल नियमित रूप से फ़ाइलें खोजें, और बिना "./" उपसर्ग उन्हें प्रिंट:

find -type f -printf '%P\n' 

से आदमी ढूंढें, -प्रिंट प्रारूप का विवरण:

% पी फ़ाइल का नाम कमांड लाइन तर्क के नाम से जिसके अंतर्गत इसे हटाया गया था।

+9

+1 अच्छा समाधान यदि 'find' का आपका संस्करण' -printf' का समर्थन करता है (सभी नहीं)। –

+1

जैसा कि टोड ने कहा, लेकिन अधिक सटीक: यह पॉज़िक्स 7 नहीं है। –

+6

समर्थित या नहीं, यह स्वीकार्य उत्तर से निश्चित रूप से सुरक्षित है। –

संबंधित मुद्दे