विंडोज आधारित समाधान का काम करना
मुझे एक नेटवर्क शेयर पर एक फ़ोल्डर मिला है जो विंडोज में बहुत अच्छा काम करता है। यह मूल रूप से अन्य उपलब्ध फ़ाइल सर्वरों का एक सूचकांक है। यह कुछ इस तरह दिखता है:
\\server1\directory
Server2.lnk <-(links to \\server2\files)
Server3.lnk <-(links to \\server3\files)
Server4.lnk <-(links to \\server4\files)
मैं macOS में इस कार्यक्षमता को दोहराने की कोशिश कर रहा हूं, लेकिन मैं इन समस्याओं में भाग गया हूं:
MacOS में एक उपनाम का उपयोग करने का प्रयास कर रहा है
मैं का उपयोग करने //server2/filesसे जुड़ा । एक बार जब मैं इसमें जुड़ा हुआ था , मैंने फ़ोल्डर के लिए उपयोग किया । मैं तो, जो कॉपी करने के लिए स्थान। काम करता है ... जब तक मैं एक ही कंप्यूटर से दूर मैं बनाया का उपयोग कर रहा । लेकिन अगर मैं इसे दूसरे मैक से उपयोग करने की कोशिश करता हूं, तो यह विफल हो जाता है।FinderGo -> Connect to ServerFinderAlias//server2/filesAlias//server1/directoryAliasAlias
अन्य मैक भी फ़ाइल के रूप में फ़ाइल को पहचानने के लिए प्रतीत नहीं होता है Alias। इसमें आइकन के समान एक terminalआइकन है, और जब मैं इसे डबल-क्लिक करता हूं, तो मैक मुझे बताता है कि फ़ाइल खोलने के लिए कोई एप्लिकेशन परिभाषित नहीं है। मैंने देखा कि मूल बनाई गई Aliasफ़ाइल में किसी भी प्रकार का एक्सटेंशन नहीं लगता है, इसलिए मुझे यकीन नहीं है कि एक अलग मैक को Aliasफ़ाइल के रूप में कैसे पहचाना जाना चाहिए ।
विंडोज .lnkफ़ाइल के बारे में अच्छी बात यह है कि यह मज़बूती से काम करने लगता है और लगातार इस बात से कोई फर्क नहीं पड़ता कि कौन सी मशीन .lnkएक्सेस की गई है, जबकि एक मैक Aliasफ़ाइल किसी तरह मूल मशीन के कुछ कॉन्फ़िगरेशन पर निर्भर करती है, जहाँ इसे बनाया गया था।
उदाहरण के लिए, यदि मैं Aliasफ़ाइल को खोलता हूं, तो मैं viउस गार्बल्ड कोड के बीच देख सकता हूं, जिसमें शेयर को एक्सेस करने के लिए कम से कम उपयोगकर्ता नाम शामिल है, जबकि मैं चाहता हूं कि प्रत्येक उपयोगकर्ता Aliasअपने स्वयं के क्रेडेंशियल्स (मैक का उपयोग करके शेयर को एक्सेस करने के लिए क्लिक करे। AD से जुड़ जाता है और उपयोगकर्ता अपने AD क्रेडेंशियल्स का उपयोग करके लॉगिन करते हैं)। फिर, यह UNC पथ और .lnkफ़ाइलों के साथ मूल रूप से काम करता है ।
MacOS में एक टर्मिनल स्क्रिप्ट का उपयोग करने का प्रयास कर रहा है
मैंने एक साधारण स्क्रिप्ट बनाने की कोशिश की जो शेयरों को मापती है। तो अंदर //server1/directoryमैंने Server2.commandनिम्नलिखित सामग्री के साथ एक फ़ाइल बनाई :
mkdir /Volumes/Server2
mount_smbfs //server2/files /Volumes/Server2
cd /Volumes/Server2
open .
इस समाधान के साथ मेरी समस्या यह है कि मेरे पास एक ही मशीन का उपयोग करने वाले कई सर्वर और कई उपयोगकर्ता हैं। Connect to Serverखोजक में विकल्प का उपयोग करने के बारे में एक बड़ी बात यह है कि यह /Volumesनिर्देशिका को स्वचालित रूप से "साफ" करता है । एक शेयर को खारिज करने के बाद, या एक सत्र को समाप्त करने के बाद, यह संबंधित /Volumes/Sharenameफ़ोल्डर को हटा देता है । यदि मैं इस टर्मिनल-आधारित समाधान का उपयोग करता हूं तो मुझे उसी व्यवहार को पूरा करने का कोई तरीका नहीं दिखता है।
सवाल
क्या कोई मुझे .lnkऊपर बताई गई कार्यक्षमता को दोहराने के लिए एक अच्छा तरीका दे सकता है ?
मुझे पता है कि UNC रास्तों के माध्यम से Windows लिंक फ़ंक्शंस करता है, जबकि macOS में मैं केवल इन नेटवर्क शेयरों के माध्यम से smbया afpmounts के माध्यम से एक्सेस कर सकता हूं , लेकिन जब से मैं देखता हूं कि Connect to Serverविकल्प बहुत अधिक फ़ंक्शन करता है कि मुझे इसकी आवश्यकता कैसे है, मुझे बस उसी कार्यक्षमता का उपयोग करने के लिए एक तरीका चाहिए , उस चेतावनी के साथ, जिसे मुझे इसे स्वचालित करने की आवश्यकता है, क्योंकि मैं अपने उपयोगकर्ताओं से पूछने वाला नहीं हूं (मेरे पास कई उपयोगकर्ता एक ही मशीन का उपयोग कर रहे हैं) प्रत्येक को Connect to Server Aliasमैन्युअल रूप से बनाते हैं ।
smbया लिंक बना सकता हूं afp। मैं केवल कंप्यूटर पर माउंट बिंदु के लिए एक प्रतीकात्मक लिंक बना सकता था, जो वास्तव में मेरी समस्या का समाधान नहीं करता है। मुझे मूल रूप से "माउंट-ऑन-डिमांड" समाधान की आवश्यकता है जिसमें "अनमाउंट-ऑन-डिमांड" फ़ंक्शन भी शामिल है। मेरे लिए आवश्यक सभी कार्यक्षमता पहले से ही फाइंडर में निहित है Connect to Server। मुझे मूल रूप से कमांड लाइन से उस कार्यक्षमता को कॉल करने का एक तरीका चाहिए, या इसे दूसरे तरीके से दोहराएं।