डायनामिक साइमलिंक


10

मैंने अलग-अलग आर्किटेक्चर के लिए अपना ऐप बनाया है और एक "डायनामिक सिमिलिंक" बनाना चाहूंगा जो मुझे एक वेरिएबल के आधार पर सही वर्जन पर ले जाए।

अगर मैं अभी जिस मशीन में लॉग इन हूं, वह x86 है, तो सिमिलिंक मुझे उस बिल्ड पर ले जाना चाहिए।

मैं क्या करना चाहता हूँ का एक नकली उदाहरण :

$ uname -i
x86_64

$ ls -ltr 
lrwxr-xr-x  1 dogbane gg     4 Feb 16 15:40 mylink -> @sys/
drwxrwxr-x  2 dogbane gg  2048 Feb 16 15:40 x86_64/
drwxrwxr-x  2 dogbane gg  2048 Feb 16 15:40 i386/

$ cd mylink

$ pwd -P
~/x86_64

क्या यह संभव है?

मुझे पता है कि मैं उपयोग कर सकता हूं cd $(uname -i), लेकिन कुछ सरल करना चाहता हूं।


क्या आप OpenAFS से परिचित हैं? क्योंकि यह @ का उपयोग उस तरह से करता है, यहां तक ​​कि '@ साइज़' का भी उपयोग करता है। यदि हां, तो क्या आप OpenAFS का विकल्प तलाश रहे हैं?
jsbillings

@jsbilling मैं यह जानना चाहूंगा कि क्या यह एएफएस के बिना एक मानक फाइल सिस्टम पर संभव है। मैं काफी समय पहले AFS पर काम करता था और ऐसा कर सकता था, इसलिए मैंने पूछा।
डॉगबैन

मुझे इतना ज्यादा लगा। मुझे पता है कि कोई अन्य फाइलसिस्टम नहीं है जिसमें NetBSD के vfs.generic.magiclinks सेटिंग के अलावा 'मैजिक' सिम्बल है। ( daemon-systems.org/man/symlink.7.html )
jsbillings

उदाहरण के लिए ऐसे वातावरण हैं जैसे रूबी और पर्ल, ताकि आप चीजों का परीक्षण करते समय किस संस्करण का उपयोग कर सकें। आपको rvm.io/rubies पर कुछ प्रेरणा मिल सकती है ।
जेनी डी

जवाबों:



2

प्रतीकात्मक लिंक स्थिर हैं: फाइलसिस्टम बस एक स्ट्रिंग को संग्रहीत करता है, और प्रतीकात्मक लिंक तक पहुंच उस फ़ाइल पर पुनर्निर्देशित की जाती है जिसका नाम (सिमलिंक के स्थान के सापेक्ष) वह स्ट्रिंग है।

ऐसे डायनामिक सिम्लिंक को उजागर करने वाले FUSE फाइलसिस्टम को लिखना सरल होगा , लेकिन मुझे मौजूदा किसी का पता नहीं है।


2

मुझे लगता है कि यह बायनेरिज़ है, इसलिए मैं इसे सिम्पीलिंक की तुलना में एक पैथ चर चर के साथ करूँगा।

PATH=$PATH:/base/$ARCH/bin

यदि आप cengine या कठपुतली की तरह एक उपकरण का उपयोग कर रहे हैं। सिस्टम आर्किटेक्चर के आधार पर उपयुक्त निर्देशिका के लिए एक सिम्लिंक बनाया जा सकता है।


1

यदि आप केवल टाइप करने के लिए एक सरल वाक्यविन्यास चाहते हैं:

cd $(uname -i)

आप इसे एक चर में रख सकते हैं जैसे:

 s=`uname -i` 

अपनी लॉगिन स्क्रिप्ट में, ताकि आप बस कर सकें

 cd $s

जब आप सी.डी.


0

सिम्लिंक मूल रूप से एक विशेष झंडे वाली फाइल होती है जिसमें कुछ पथ होता है, और इस पथ की व्याख्या इस प्रकार की जाती है, जिससे आप उस स्थान के अन्य स्थानों पर जाने के लिए एक सिम्लिंक नहीं बना सकते हैं। लेकिन आप फिर भी स्क्रिप्ट लिख सकते हैं जो उचित बिल्ड चलाएगा।

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