क्या ओएस एक्स पर कमांड लाइन टूल्स के लिए यूनिक्स विकल्पों का पूरा सूट प्राप्त करना संभव है?


14

मैं ट्विटर पर यूनिक्स टूल टिप का पालन करता हूं और यह दिलचस्प है कि पोस्ट किए गए कई टिप्स ओएस एक्स पर उपलब्ध नहीं हैं।

उदाहरण के लिए:

cp - u केवल उन फ़ाइलों को कॉपी करेगा जो मौजूद नहीं हैं, या गंतव्य निर्देशिका में उनके मौजूदा समकक्षों की तुलना में नए हैं।

मेरी मशीन के परिणामों पर इसे आज़माने से:

cp: illegal option -- u
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
   cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory  

ये विकल्प क्यों उपलब्ध नहीं हैं और क्या ओएस एक्स पर इन तक पहुँच प्राप्त करना संभव है?


आप खोज, sed, और awk को भी स्थापित कर सकते हैं brew install coreutils findutils gnu-sed gawkApple.stackexchange.com/questions/69223/… देखें ।
लाि

चेतावनी: यदि आप cli टूल्स के GNU संस्करणों को स्थापित और उपयोग करते हैं, तो आप GNU के एक्सटेंशन प्राप्त करते हैं, लेकिन आप OS X के टूल्स के संस्करण में एक्सटेंशन भी खो देते हैं। उदाहरण के लिए, होमब्रेव के कोर्यूटिल्स ( gcpभ्रम से बचने के लिए नामित ) में cp कमांड जटिल मेटाडेटा की प्रतिलिपि बनाने का तरीका नहीं जानता है जिसमें OS X फाइलें हो सकती हैं (विस्तारित एट्र्स, आदि); इसलिए यदि आप gcpकिसी अन्य फ़ाइल पर उपयोग करते हैं, तो प्रतिलिपि महत्वपूर्ण जानकारी गुम हो जाएगी और काम नहीं करेगी।
गॉर्डन डेविसन

@GordonDavisson सिर के लिए धन्यवाद। यह है कि .file कि जोड़ा जाता है मेरे सभी निर्देशिका जाओ? मुझे लगता है कि यह एक प्लस हो सकता है :)
DQdlM

@KennyPeanuts: क्या आपका मतलब .DS_Store फ़ाइल है? यह वैसा ही है, लेकिन मैं इसके बारे में बात नहीं कर रहा हूं (और gcp -Rइसे हर चीज के साथ कॉपी करूंगा)। यदि आपका मतलब है ._somefilename, कि एक AppleDouble फ़ाइल कुछ प्रकार के विदेशी संस्करणों पर मेटाडेटा (जिस जानकारी के बारे में मैं बात कर रहा हूं) को संग्रहीत करने के लिए उपयोग किया जाता है, जो कि ... जटिल है ...
गॉर्डन डेविसन

@GordonDavisson स्पष्टीकरण के लिए धन्यवाद। यह उन ._somefilename फ़ाइलों के बारे में बात कर रहा हूँ।
DQdlM

जवाबों:


12

Homebrew जाओ और यह कोर उपयोगिताओं को स्थापित किया है। फिर आप देख सकते हैं कि cp का GNU संस्करण आपकी इच्छा के अनुसार झंडे का समर्थन करता है या नहीं। यहाँ एक साथी साइट पर एक अच्छा जवाब है और मैं चाहूंगा कि अगर आप चाहें तो सटीक चरणों को जीएनयू संस्करण द्वारा प्रतिस्थापित किया जा सकता है।

यहां देखें होमब्रेव - http://mxcl.github.com/homebrew/
यहां लंबी कहानी है - /superuser/476575/replace-os-xs-shell-commands-with-the-linux-versions/ 476,594 # 476,594


ऐसे वातावरण का एक उदाहरण है [Homebrew] ( http://mxcl.github.com/homebrew/ ) जो उदाहरण के लिए sedअन्य चीजों के बीच GNU है । होमब्रेव स्थापित करने के बाद, आप टाइप कर सकते हैं

brew install coreutils

और GNU Coreutils स्थापित करें । इन के साथ प्रदान करेगा sed, date, printf, wcऔर कहा कि जीएनयू / लिनक्स, लेकिन नहीं ओएस एक्स हालांकि साथ जहाज, "ओवरराइड" डिफ़ॉल्ट ओएस एक्स binaries के लिए इतनी के रूप में नहीं कई अन्य उपकरण, वे के साथ उपसर्ग किया जाएगा gडिफ़ॉल्ट रूप से। इसलिए, Coreutils स्थापित करने के बाद, यदि आप GNU sed का उपयोग करना चाहते हैं, तो टाइप करें

gsed

यदि यह हर बार टाइप करने के लिए बहुत अधिक परेशानी है, तो आप अपने पेटीएम में "gnubin" डायरेक्टरी जोड़ सकते हैं और बस GNU sed के साथ कॉल कर सकते हैं sed। आपको निम्नलिखित को अपने साथ जोड़ना होगा ~/.bash_profile:

PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH"


क्या उपयोग करके इंस्टॉल करना ठीक है port?
आदिल सूमरो

1
@ AdilSoomro macports.org एक अच्छी प्रतिष्ठा के साथ एक पुराना उपकरण है। मैं इसे नहीं आजमाने का कोई कारण देखता हूं - मेरे पास कोई अनुभव नहीं है और होमब्रेव का उपयोग और योगदान करते हैं।
bmike

3

कारण यह है कि OSX बीएसडी कमांड लाइन टूल का उपयोग करता है और यूनिक्स टूल टिप उपयोगकर्ता शायद लिनक्स का उपयोग कर रहे हैं जो GNU कमांड लाइन टूल का उपयोग करता है।

आप ओएसएक्स (और लिनक्स पर बीएसडी) पर जीएनयू उपकरण स्थापित कर सकते हैं।

सबसे आसान तरीका एक पैकेज मैनेजर का उपयोग करना है जैसे मैकपोर्ट्स, होमब्रे या फिंक

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