ड्रॉपबॉक्स में प्रतीकात्मक लिंक कैसे काम करते हैं?


19

मैंने एक फ़ोल्डर में फ़ाइलों के लिए कुछ लिंक किए। जब मैंने ड्रॉपबॉक्स में उस फ़ोल्डर को जोड़ा, लिंक में फाइलों से जुड़ी डुप्लिकेट प्रतियां थीं। क्या आपको यह समस्या हुई है? क्या आप समझ रहे हैं कि क्या हो रहा है? क्या कोई हल है?

इस प्रश्न को स्पष्ट करने के लिए: फ़ाइल प्रबंधक के "टाइप" कॉलम में, ड्रॉपबॉक्स से जुड़ने से पहले, Link_to_notes को लिंक दिखाया गया था और आकार 32 बाइट्स था। ड्रॉपबॉक्स से जुड़ने के बाद, Link_to_notes को एक सादा पाठ दस्तावेज़ दिखाया गया था और आकार 18.7 kB था, नोट्स फ़ाइल का आकार।


2
ड्रॉपबॉक्स एक क्रॉस-प्लेटफॉर्म समाधान होने के साथ, हर दूसरा व्यवहार शायद और भी अधिक भ्रमित होगा - यदि आप अपने फ़ोल्डर को विंडोज मशीन के साथ सिंक करते हैं तो यह कैसे व्यवहार करेगा?
सर्जेई

जवाबों:


14

ड्रॉपबॉक्स प्रतीकात्मक लिंक का अनुसरण करता है और उन्हें निर्देशिका के रूप में मानता है। यह आपके ड्रॉपबॉक्स निर्देशिका में फ़ाइलों और निर्देशिकाओं को स्थानांतरित करने के बिना बैकअप के लिए वास्तव में उपयोगी है।

$ ln -s ~/Documents/ ~/Dropbox/Documents

यह एक खतरनाक व्यवहार हो सकता है। उदाहरण के लिए, यदि मैं ड्रॉपबॉक्स निर्देशिका से लिंक को हटाता हूं, तो क्या संभवतः कोई ऐसा परिदृश्य है जिसे मैं गलती से अपनी मूल फ़ाइलों या फ़ोल्डरों को हटा सकता हूं?
वीकॉन

@Vicon, यह खतरनाक व्यवहार नहीं है, यह अपेक्षित व्यवहार है। लेकिन हां, स्पष्ट होने के लिए, यदि आप प्रतीकात्मक लिंक को हटा देते हैं, तो फाइलें ड्रॉपबॉक्स से भी हटा दी
जाएंगी

2
ड्रॉपबॉक्स समुदाय में, यह कहा गया है कि ड्रॉपबॉक्स प्रतीकात्मक लिंक का समर्थन नहीं करता है और इसका उपयोग करने के खिलाफ दृढ़ता से सलाह देता है। यदि आप ड्रॉपबॉक्स ग्राहक सहायता से संपर्क करते हैं, तो वे आपको आगे बढ़ने से पहले किसी भी प्रतीकात्मक लिंक को हटाने के लिए कहेंगे। निश्चित रूप से, लोग अभी भी इसका उपयोग कर सकते हैं, लेकिन यह ड्रॉपबॉक्स द्वारा अभिप्रेत व्यवहार नहीं है, और खतरनाक हो सकता है (फाइलें खोना), समस्याग्रस्त (नकल की गई फाइलें अनजाने में सिंक की गई, जो इस प्रश्न में हल की गई समस्या है), साथ ही सिंक्रनाइज़ प्रदर्शन के मुद्दों, आदि के रूप
Vicon

@Vicon, प्रतीकात्मक लिंक कई परिचालनों के लिए पारदर्शी रूप से काम करते हैं: एक प्रतीकात्मक लिंक द्वारा नामित फ़ाइलों को पढ़ने या लिखने वाले प्रोग्राम ऐसे व्यवहार करेंगे जैसे सीधे लक्ष्य फ़ाइल पर काम कर रहे हों
ग्रेगोलॉजी

7

इसका सबसे अच्छा तरीका यह है कि ड्रॉपबॉक्स फ़ोल्डर में फ़ाइलों को स्टोर करना और बाहर से उनके लिए सिमल करना ...

इसलिए ~ / ड्रॉपबॉक्स / दस्तावेज और सिमलिंक बनाएं:

ln -s ~/Dropbox/Documents ~/Documents

यह ड्रॉपबॉक्स को भ्रमित होने से रोकता है और किसी भी चीज़ को डी-लिंक कर रहा है जो कि अंदर की कड़ी है क्योंकि आपके पास सभी चीजें हैं और इसके बजाय जब आप उन्हें कहीं और चाहते हैं तो आप उन्हें ड्रॉपबॉक्स में लिंक करते हैं। बुनियादी नियम ड्रॉपबॉक्स फ़ोल्डर के अंदर कहीं भी कोई भी सहानुभूति नहीं है ... उन्हें ड्रॉपबॉक्स फ़ोल्डर के बाहर है और आपको कोई समस्या नहीं होगी।

मेरे पास कई ubuntu मशीनों पर ड्रॉपबॉक्स है और मेरे सभी प्रमुख शीर्ष स्तर के फ़ोल्डर वास्तव में ड्रॉपबॉक्स में संग्रहीत हैं।


ड्रॉपबॉक्स भ्रमित क्यों होगा? और ड्रॉपबॉक्स प्रतीकात्मक लिंक को कैसे बदल देगा? फ़ाइल सिस्टम द्वारा प्रतीकात्मक लिंक स्वचालित रूप से हल किए जाते हैं
ग्रेगोलॉजी

5

ड्रॉपबॉक्स निर्देशिकाओं के लिए सहानुभूति लिंक का पालन करेगा, लेकिन यह एक फ़ाइल के लिए एक लिंक (या तो सिम या हार्ड) को तोड़ देगा और इसे एक फ़ाइल के साथ बदल देगा।


2

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

पृष्ठभूमि

अगर मैं ड्रॉपबॉक्स फ़ोल्डर पदानुक्रम के भीतर एक प्रतीकात्मक लिंक (सिमिलिंक) बनाता हूं, तो एक बार से अधिक बार मुझे ड्रॉपबॉक्स फ़ोल्डर द्वारा जला दिया गया है, यहां तक ​​कि मेरे खाते को भरने के बिंदु तक। जैसा कि कई लोगों ने वेब के चारों ओर नोट किया है, ड्रॉपबॉक्स की प्रतीकात्मक लिंक के ठीक से इलाज के अभाव के लिए कोई वास्तविक सुधार नहीं है, जो दुर्भाग्यपूर्ण है क्योंकि ऐसा करना उनके लिए कठिन नहीं होगा।

वैकल्पिक हल

ड्रॉपबॉक्स पदानुक्रम के भीतर सहानुभूति के समतुल्य व्यवहार को प्राप्त करने के लिए, हालांकि, जो मैं उपयोग करता हूं, एक वर्कअराउंड --- दूसरों को अक्सर "आंतरिक सिम्बलिंक" के रूप में संदर्भित किया जाता है --- बिना ड्रॉपबॉक्स को दोहराए सब कुछ विंडोज शॉर्टकट फ़ाइल के बराबर बनाना है (यानी , (MS इकोसिस्टम में .lnk फ़ाइल)। मैं एक .desktop फ़ाइल बनाकर ऐसा करता हूं जो मेरे सिस्टम के फ़ाइल प्रबंधक को वांछित पथ पर खोलता है। इस प्रकार, यह समाधान केवल GUI स्तर पर और केवल XDG अनुरूप प्रणालियों (उदाहरण के लिए, Ubuntu, GNOME- आधारित सिस्टम, कई अन्य) के लिए काम करता है।

उदाहरण

उदाहरण के लिए, मैं एक नई नौकरी के लिए उन्नत पायथन तकनीकों पर पढ़ रहा हूं, और मैं जो PDF पढ़ रहा हूं, वे GoodReader App (iOS) के लिए मेरे ड्रॉपबॉक्स फ़ोल्डर में संग्रहीत हैं, इसलिए मैं अपने डेस्कटॉप पर उन दोनों को पढ़ सकता हूं और मेरे मोबाइल उपकरणों के साथ। उस फ़ोल्डर को ड्रिल करने की बजाय ( /home/morse/lib/active/GoodReader/Books/Python), मैं केवल निम्नलिखित सामग्री Python.desktopके /home/morse/Desktopसाथ एक फ़ोल्डर बनाता हूं :

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Name=Python
Exec=nautilus /home/morse/lib/active/GoodReader/Books/Python
Icon=/usr/share/icons/MacBuntu-OS/places/96/stock_folder.png
Terminal=false

(नोट: अनुकूल करने के लिए सुनिश्चित करें Exec=nautilus ...यदि आप नॉटिलस के अलावा अन्य एक फ़ाइल प्रबंधक का उपयोग कर रहे भाग, और निश्चित रूप से आप अनुकूल करने के लिए चाहते हैं Name=, Icon=की, और पथ भाग Exec=प्रत्येक "सिमलिंक" आप बनाना चाहते हैं के लिए लाइन।)

इसके साथ, मैं अपने डेस्कटॉप पर पायथन नाम का एक फ़ोल्डर देखता हूं जो एक प्रतीकात्मक लिंक की तरह काम करता है --- यानी, मैं इसे डबल क्लिक करता हूं और यह उपयुक्त फ़ोल्डर को खोलता है --- लेकिन केवल एक छोटी पाठ फ़ाइल (जैसे, पायथन)। डेस्कटॉप) को ड्रॉपबॉक्स और मेरे अन्य सिस्टम के अनुरूप हो जाता है (जैसा कि सभी सामग्रियों के विपरीत अंततः ड्रॉपबॉक्स द्वारा हर जगह दोहराया जा रहा है)।

अन्य .desktop फ़ाइलों की तरह, अनुमतियों को ऐसे सेट किया जाना चाहिए कि फ़ाइल संकेतित आइकन के लिए पठनीय और निष्पादन योग्य (जैसे, chmod 700 Python.desktopया दोनों chmod 755 Python.desktop) प्रदर्शित हो और वास्तव में कुछ भी करने के लिए डबल-क्लिक करने के लिए।

सारांश

सारांश में, मैं हमेशा ड्रॉपबॉक्स के भीतर कहीं वास्तविक फाइलें उपलब्ध /home/morse/lib/active/GoodReader/Books/Pythonकरूंगा --- इस उदाहरण में, --- लेकिन मैं अपने सभी लिनक्स-आधारित सिस्टम में एक डेस्कटॉप "शॉर्टकट" भी रखूंगा जिसके लिए मैं भी DropBox कॉन्फ़िगर किया गया है।

बेशक, यह वर्कअराउंड कमांड-लाइन स्तर पर काम नहीं करता है, क्योंकि एक सच्चा सिम्क्लिन होगा।

उस ने कहा, यह जीयूआई स्तर पर एक उपन्यास समाधान प्रतीत होता है, एक जिसे मैंने कहीं और पोस्ट नहीं किया है। इसलिए, मुझे उम्मीद है कि यह दृष्टिकोण दूसरों के काम आ सकता है।


यह प्रतिभा है! मैंने अब तक आंतरिक सिम्बल के लिए कोई समाधान नहीं देखा है! और यह सुपर साफ है। मेरा दिन बनाने के लिए आपको धन्यवाद! मुझे यह जोड़ना चाहिए कि कमांड-लाइन स्क्रिप्ट बनाने के लिए यह बिल्कुल सीधा होना चाहिए, जो एक .desktop फ़ाइल को पार्स करता है और सिम्लिंक की गई फ़ाइल या फ़ोल्डर को खोलता है, हालांकि आप सीधे निर्देशिका में "सीडी" करने में सक्षम नहीं हो सकते हैं।
प्रवीण

0

अपने लिंक को संपीड़ित करें और ड्रॉपबॉक्स में संपीड़ित फ़ाइल को सहेजें

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

मेरे पास कुछ बीस प्रतीकात्मक लिंक हैं जो मैं आमतौर पर अपने लुबंटू इंस्टॉलेशन में उपयोग करता हूं, जैसे ड्रॉपबॉक्स में सहेजे गए स्क्रिप्ट्स को त्वरित एक्सेस के लिए, बाहरी hdds को, अक्सर उपयोग किए जाने वाले दस्तावेज़ों के लिए, आदि। वे सभी मेरे घर डायर और डेस्कटॉप में हैं और मुझे यह मिल गया। अन्य संस्थापनों के लिए उपयोग करने के लिए या जब मैं डिस्ट-अपग्रेड (जब मैं डिस्ट-अपग्रेड करने की कोशिश करने के बाद पुनः स्थापित करता हूं);

पहला तरीका

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

tar -cvf MyHomeLinks.tar MyHomeLinks

(टारफाइल नाम के लिए ".tar" एक्सटेंशन को जोड़ने के लिए याद रखें, या उबंटू आर्काइव मैनेजर इसे खोलने से इंकार कर देगा।) यदि आप ऐसा करते हैं, तो बस सावधानी बरतें कि विकल्प (-dereference) को टार में न जोड़ें क्योंकि यह ठीक ड्रॉपबॉक्स के रूप में व्यवहार करेगा और सिम्बलिंक के बजाय लक्ष्य फ़ाइलों को संपीड़ित करेगा । (वैसे, इस तरह के व्यवहार का ज्यादातर मामलों में स्वागत किया जाएगा, अगर कोई एक पोर्टेबिलिटी के उद्देश्य से है, लेकिन यह नहीं है कि क्या कोई सहानुभूति के रूप में सहानुभूति को बचाना चाहता है।)

टार फ़ाइल में वे लिंक भी शामिल होंगे जो अस्थायी रूप से टूटे हुए हैं, जैसे कि बाहरी hdds के लिंक वर्तमान में माउंट नहीं किए गए हैं - जो ठीक है।

अपने ड्रॉपबॉक्स में टार फ़ाइल सहेजें। जब आपको लिंक वापस चाहिए, तो अपने फ़ाइल सिस्टम में एक डायरेक्टरी में टार फ़ाइल को कॉपी करें (ड्रॉपबॉक्स के भीतर नहीं), इसे निकालें (बस दायाँ क्लिक करें और "यहाँ निकालें" चुनें) और अपने प्रतीकात्मक लिंक को उन स्थानों पर वापस कॉपी करें जहाँ आप उन्हें चाहते हैं। ।

दूसरा तरीका

यदि आप जो सीमलिंक सहेजना चाहते हैं, उसमें एक एकल उपसर्ग है (जैसे कि "MySl" ...) आप बहुत जल्दी इस तरह से अपना टर्फाइल बना सकते हैं (गलतियों को रोकने के लिए अनावश्यक रिक्त स्थान जोड़ा गया है):

find   .   -name   "MySl*"|xargs  tar  cvf  MyLinks.tar

"खोज" के बाद एकल बिंदु का अर्थ है वर्तमान निर्देशिका: अपने घर में टर्मिनल खोलें (डिफ़ॉल्ट रूप से)। आप निश्चित रूप से टार फ़ाइल में एक पथ जोड़ सकते हैं और आप किसी अन्य निर्देशिका से कमांड जारी कर सकते हैं जो घर नहीं है: "" बदलें। अपने घर / उपयोगकर्ता के लिए पथ के साथ। ऊपर MyLinks के रूप में कार्य निर्देशिका बनाने की आवश्यकता नहीं है। सीमलिंक को बहाल करना भी त्वरित है: आप अपने घर पर टारफाइल की नकल करते हैं, उस पर राइट क्लिक करें और "यहां निकालें"। हालांकि, अपने सिम्बलिंक के सभी नामों को उपसर्ग शुरू करने से पहले, अगले विकल्प पर एक नज़र डालें।

तीसरा तरीका (और सबसे अच्छा)

एक टार फ़ाइल में अपने सभी सिम्बलिंक को इकट्ठा करने का एक बहुत तेज़ तरीका है: अपने घर / उपयोगकर्ता में एक टर्मिनल खोलें (जो कि टर्मिनल खोलने पर डिफ़ॉल्ट हो) और:

find  .  -type  l|xargs  tar  -cvf  AllLinks.tar

दोष यह है, इसमें आपको अपने सभी लिंक मिलते हैं, जिसमें कुछ मोज़िला या हिप्लिप सिम्लिंक्स भी शामिल हैं, जिन्हें आप जानते भी नहीं थे। इससे बचने के लिए और पुनरावृत्ति के बिना निर्देशिका की एक निर्दिष्ट सूची से सभी और केवल सहानुभूति को कॉपी करने के लिए , आप ऊपर दिए गए कमांड में "ढूंढें" के बाद सूची लिखते हैं। कहते हैं कि आप लिंक को घर / उपयोगकर्ता और डेस्कटॉप से ​​बचाना चाहते हैं; तुम लिख सकते हो

 find /home/<USER>/ /home/<USER>/Desktop/ -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar

"-maxdepth 1" घर के माध्यम से ढूंढने से रोकने के लिए है। आप चाहें तो टार्फाइल के लिए एक रास्ता जोड़ सकते हैं। वैकल्पिक रूप से:

 find .  Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar

यदि आप आलसी हैं और आप अक्सर इसका उपयोग करना चाहते हैं, तो आप इसे अपने घर में dir (.bash_aliases) के लिए एक उपनाम के रूप में .bashrc या tobash_aliases के रूप में जोड़ सकते हैं (.bash_aliases अपने उपनाम इकट्ठा करने के लिए एक बहुत ही सुविधाजनक तरीका है और, क्यों नहीं, उन्हें बचाने के लिए। ड्रॉपबॉक्स ...)। बस एक नई खाली फ़ाइल बनाएं, जिसे .bash_aliases के रूप में अपने घर dir (अर्थात, / घर / उपयोगकर्ता) में, एक टेक्स्ट एडिटर के साथ खोलें और उसमें निम्न पंक्ति लिखें:

alias save_symlinks='find . Desktop -maxdepth 1 -type l|xargs tar -cvf MyLinks.tar'

अपनी पसंद के लोगों के साथ "खोजने" और अपनी पसंद के कमांड नाम के साथ "save_symlinks" के बाद निर्देशिकाओं को बदलें। पुनर्स्थापित करने के लिए, अपने फ़ाइल प्रबंधक को खोलें (यदि ऊपर दिए गए आदेश में निर्देशिकाओं का मार्ग पूर्ण नहीं है, तो टारफाइल घर / उपयोगकर्ता में होना चाहिए), राइट क्लिक करें और निकालें।

यदि आप ऐसा करते हैं, तो जीवन आसान है। तुमको बस यह करना है:

बचाओ: टर्मिनल में save_symlinks टाइप करें, अपने घर में टार्फाइल को ड्रॉपबॉक्स में सहेजें; RESTORE: ड्रॉपबॉक्स से फ़ाइल को अपने होम डायर पर कॉपी करें, उस पर राइट क्लिक करें और "एक्सट्रैक्ट यहाँ" चुनें।

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