2013-07-09 4 views
11

के बीच अंतर मुझे एप्लिकेशन के लिए निर्माण प्रक्रिया के हिस्से के रूप में एक स्क्रिप्ट विरासत में मिली है, और जब मैं इसे बिल्ड सर्वर (उबंटू सटीक) पर चलाता हूं तो यह ठीक चलता है, लेकिन जब मैं दौड़ता हूं यह मेरे मैक पर मुझे "अवैध विकल्प - टी" मिलता है। आदेश है कि समस्या है, सरल है यह सिर्फ find के लिए एक कॉल है:मैक `find` और Linux` find`

find -type f -not -path [...] 

परीक्षण पर मुझे पता चला है कि यह -type विकल्प पर मेरे मैक मुसीबत किया है। यदि मैं इसके बजाए दौड़ता हूं:

find ./ -type f -not -path [...] 

यह काम करता है, फिर भी दोनों काम (प्रतीत होता है समकक्ष) लिनक्स बॉक्स पर। इसलिए मेरा सवाल यह है कि क्या ओएसएक्स (बीएसडी) find बाइनरी और लिनक्स (जीएनयू?) find के बीच महत्वपूर्ण अंतर हैं और स्क्रिप्ट में मेरा संशोधन (शुरुआत में ./ पथ जोड़ना) कुछ भी तोड़ सकता है जिसे मैंने अभी तक नहीं खोजा है?

+0

संबंधित:।। Http: // stackoverflow.com/questions/752818/why-does-macs-find-not-have-the-option-printf – legoscia

+0

लिनक्स में निर्देशिका नाम या पथ का उल्लेख करने की आवश्यकता नहीं है। डिफ़ॉल्ट रूप से यह वर्तमान निर्देशिका लेगा। –

+0

मैक में os पथ या निर्देशिका अनिवार्य फ़ील्ड निर्दिष्ट करना –

उत्तर

11

standard अनिवार्य होने के लिए पथ (./) में पथ को अनिवार्य है। मैकोज़ पर find मानक का पालन करता है।

GNU find (लिनक्स पर उपलब्ध एक) पथ को वैकल्पिक होने की अनुमति देता है। यदि निर्दिष्ट नहीं है, तो वर्तमान निर्देशिका को पथ माना जाता है। लिनक्स पर, आदमी खोजने का कहना है

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression] 

(ध्यान दें कि पथ [...] इंगित करता है कि यह वैकल्पिक है के भीतर निर्दिष्ट किया जाता है

यह पथ निर्दिष्ट करने के लिए एक अच्छा अभ्यास है

+0

ठीक है धन्यवाद, मैंने पथ को शामिल करने के लिए स्क्रिप्ट को अद्यतन किया है, लेकिन मैं यकीन नहीं था कि अगर मैं कुछ और मौलिक वाक्यविन्यास मतभेदों को याद कर रहा था। – GTF

+0

अन्य मतभेद हो सकते हैं, लेकिन वे अधिकतर विकल्प और परीक्षणों में अंतर होंगे जो वे समर्थन करते हैं - उदाहरण के लिए, ओएस एक्स का खोज '-बिन',' -बर्नर 'और' -बाटा 'परीक्षणों का समर्थन करता है जो फ़ाइल की जांच करते हैं निर्माण तिथि (इनोड "जन्म समय"), जो लिनक्स नहीं है; दूसरी तरफ, ओएस एक्स का खोज '-डी डीबगॉप्स' विकल्प का समर्थन नहीं करता है। लेकिन अगर वही खोज कमांड दोनों के बिना त्रुटि के चलाता है तो यह आम तौर पर दोनों पर एक ही चीज़ करेगा ... –

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