उस फ़ाइल के लिए एक सिम्लिंक को तोड़ने के बिना एक फ़ाइल mv


24

क्या mvकिसी फ़ाइल पर उस फ़ाइल का प्रतीकात्मक लिंक तोड़ना संभव है ? इस पर मेरी प्रारंभिक प्रतिक्रिया नहीं है, और मैं इस कदम के तुरंत बाद लिंक बदलने के लिए एक स्क्रिप्ट आधारित समाधान पर काम कर रहा हूं, लेकिन मैं सोच रहा था कि दूसरों ने इस मुद्दे पर कैसे संपर्क किया है। सिम्बलिंक के मार्ग और नाम पहले से ज्ञात हैं, इसलिए सिद्धांत रूप में मुझे केवल इतना करना है:

  1. लिंक का लक्ष्य प्राप्त करें
  2. लक्ष्य को एम.वी.
  3. नए लक्ष्य के लिए लिंक पुनः बनाएँ
  4. नए लक्ष्य के लिए एक नया लिंक बनाएं (मूल लिंक से अलग, जिसे मैं अभी भी रखना चाहता हूं)

बाद की तारीख पर:

  1. पुरानी लिंक को हटाएं

1-4 को बैश स्क्रिप्ट में एनकैप्सुलेट किया जाएगा, लेकिन मैं सोच रहा हूं कि क्या किसी के पास अधिक सुरुचिपूर्ण दृष्टिकोण है, या एक अंतर्निहित या कमांड के बारे में जानता है जिसके बारे में मुझे जानकारी नहीं है।


2
हार्ड लिंक में यह समस्या नहीं है। हालांकि उनकी अन्य कमियां हैं। :-)
स्टीफन जिमेनेज़

3
हाँ, हार्डलिंक का उपयोग नहीं कर सकते क्योंकि फाइलें कई फाइल सिस्टम में हैं।
गाबे

2
इसके अलावा: एक निर्देशिका के लिए हार्डलिंक नहीं कर सकते।
सम्पाबल्कुपर

जवाबों:


8

आप सही रास्ते पर हैं, मुझे नहीं लगता कि आपके द्वारा वर्णित अनुक्रम की तुलना में एक आसान तरीका है।

चरण 3 और 4 थोड़ा भ्रामक हैं। यदि आप मौजूदा लिंक को फिर से लक्षित करना चाहते हैं तो आप उसी नाम को रख सकते हैं जिसका उपयोग आप ln -fमौजूदा फ़ाइलों को अधिलेखित करने के लिए कर सकते हैं । यदि आप चाहते हैं कि नए लिंक नाम को प्रतिबिंबित करने के लिए आपके लिंक का नाम भी बदल जाए, तो आपका अनुक्रम सही है।


1
हे, हाँ, बस उस हिस्से को फिर से पढ़ें और अब मैंने खुद को भी भ्रमित कर लिया है। मैं इसे घुमा दूँगा तो यह अधिक समझ में आता है। धन्यवाद।
गाबे

मैं ln -f के उपयोग पर थोड़ा उलझन में हूं, लेकिन मुझे लगता है कि @fred पोस्ट की गई स्क्रिप्ट यह स्पष्ट करने में मदद कर सकती है कि यह कैसे काम करता है। आश्चर्यजनक रूप से मैन पेज बहुत मददगार नहीं था।
गाबे

@gabe। मेरे उत्तर के मूल संस्करण में सही था -s -f, लेकिन इसकी पुष्टि करते समय, यह "खो गया" -s: गलत! विकिपीडिया से : बिना किसी विकल्प के 'ln' एक कड़ी बनाता है, 'ln -f' एक कठिन लिंक को बाध्य करता है ... इसलिए इस प्रश्न के लिए धन्यवाद, इसने वास्तव में मेरे लिए अब वाक्यविन्यास की पुष्टि कर दी है .. यह निश्चित रूप से मुझे डबल-चेक करता है चीजें ... इसकी आवश्यकता हैln -s -f .. (मैंने समायोजन किया है)
पीटर।

4

आपकी स्थिति के लिए:

# change target of a symbolic link
# -------------
# ln -s, --symbolic    make symbolic links instead of hard links
# ln -f, --force       remove existing destination files
#
# Setup: make junk.link to  file junk
  echo hello > ~/junk
  ln -s ~/junk ~/junk.link;  cat ~/junk.link
#
# move file and point the link to it.
  org="$(readlink ~/junk.link)"
  new="$org".moved
  mv "$org" "$new"
  ln -s -f "$new" "$new".link  # '-s' for a soft link

नोट: यदि लिंक की एक श्रृंखला शामिल है तो यह अधिक जटिल होगा।
18.O पर पीटर।

0

मुझे अगली समस्या है। मुझे "सूरू ++" नामक एक आइकन विषय बहुत अच्छा लगा।

सुरू ++ 20 [आधिकारिक तौर पर बग-मुक्त और 11 डीईएस-संगत]

लेकिन यह आइकन थीम svg सभी छवि में बनाई गई है। अब मैं इसे फ्लक्सबॉक्स में उपयोग करना चाहता हूं और मेनू प्रविष्टियों को उत्पन्न करना चाहता हूं लेकिन यह केवल png आइकन छवि के साथ ही संभव है जो मैं मास्टर डाउनलोड करता हूं अंदर जो कि svg प्रारूप में सभी आइकन हैं, और हां मैं कमांड लाइन svg से कन्वर्ट कर सकता हूं, प्रत्येक के लिए सभी ठीक उत्पन्न करने के लिए png फ़ोल्डर का आकार 16x16, 24x24 px जैसा है। लेकिन उस फ़ोल्डर में एक svg फ़ाइलों के प्रतीकात्मक लिंक हैं:

प्रतीकात्मक लिंक के अंदर विस्तार svg जो मैं png में बदलना चाहता हूं

अगर सभी प्रतीक लिंक के अंदर png में एक्सटेंशन svg को बदलना संभव है, तो आइकन थीम फ्लक्सबॉक्स मेनू और फ़ाइल मैनेजरों में ठीक काम करेगा। मैंने Xubuntu में लेकिन स्पेनिश में उपयोग करके इस आइकन थीम के बारे में एक मनोरंजक बनाया

भगवान भला करे

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