ऐसा लगता है कि उपनिर्देशिका को स्थानांतरित किए बिना एक फ़ाइल को एक नई फ़ाइल में एक नई फ़ाइल में सिंप्लिंक करना सरल होना चाहिए। लेकिन वाक्यविन्यास के बारे में कुछ हैरान करने वाला है और मैं उससे अपेक्षा करता हूं कि वह क्या करेगा। यहाँ एक परीक्षण मामला है:
mkdir temp
cd temp
mkdir deploy
echo "Contents of the build file!" > deploy/resources.build.php
ln -s deploy/resources.build.php deploy/resources.php
cat deploy/resources.php #bad symlink
यह सिर्फ एक टूटी हुई सिम्लिंक बनाता है! मैं इसे एक बिल्ड इनवायरमेंट सेटअप स्क्रिप्ट में चला रहा हूं, इसलिए मैं अगर संभव हो तो वर्तमान वर्किंग डायरेक्टरी को बदलने से बचना चाहता हूं।
ln -s deploy/resources.build.php resources.php
cat deploy/resources.php
यह भी काम नहीं करता है क्योंकि यह तैनात उपनिर्देशिका के बजाय अस्थायी निर्देशिका में सिमलिंक बनाता है।
cd deploy
ln -s resources.build.php resources.php
cd ..
यह काम करता है, लेकिन मैं यह जानना चाहता हूं कि निर्देशिकाओं को बदलने के बिना यह कैसे करना है।
पूर्ण पथ का उपयोग करना:
/home/whatever/src/project/temp/stuff/temp/deploy/resources.build.php
काम करता है, लेकिन अस्वाभाविक है और कुछ हद तक अव्यवहारिक है, विशेष रूप से एक बिल्ड वातावरण में जहां सभी प्रोजेक्ट सामान बिल्ड और इस तरह के बीच भिन्न हो सकते हैं।
मैं एक उपनिर्देशिका में दो फ़ाइलों के बीच एक सिम्लिंक कैसे बना सकता हूं, उस उपनिर्देशिका में और उसके बाहर जाने के बिना, और नई फ़ाइल "उपनाम" को एक नया नाम देते समय?