ऑर्ग-मोड फ़ाइल को सभी अनुलग्नकों के साथ कैसे स्थानांतरित करें?


21

मेरे पास एक जोड़ी फाइलें हैं, उदाहरण के लिए file-1.org, file-2.orgउसी निर्देशिका में data/संलग्नक के लिए निर्देशिका साझा करना ।

मैं file-1.orgएक अलग स्थान पर जाना चाहता हूं , data/उस स्थान पर एक नई निर्देशिका बनाऊंगा और सभी अनुलग्नकों को स्थानांतरित करूंगा जो नई निर्देशिका से संबंधित हैं file-1.org। क्या ऐसा करने का कोई स्वचालित तरीका है?


1
यह उपयोगी लगता है, लेकिन मौजूद नहीं है। सबसे सरल विकल्प फाइलों को सीधे स्थानांतरित करना और फिर org-attach-syncउन्हें नए आइटम के साथ सिंक करने के लिए उपयोग करना हो सकता है ।
15

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

1
क्या ऑर्ग फाइलों को एक संस्करण नियंत्रण प्रणाली द्वारा प्रबंधित किया जाता है, जैसे गिट? जब मैं git में एक ऑर्ग फाइल में अटैचमेंट जोड़ता हूं, तो अटैचमेंट्स स्वतः ही रिपॉजिटरी के लिए प्रतिबद्ध होते हैं।
मेलियोरैटस

ओआरजी-लिंट टूटे हुए लिंक को खोजने में मदद कर सकता है
अल्वारो

जवाबों:


1

यह आदेश वह कर सकता है जो आप चाहते हैं:

find -E data -type f -iregex ".*($(cat file-1.org | grep -i ':id:' | perl -pe 's/^\s*:id:\s*(\w{2})([\w-]+)$/$1\\\/$2/i' | paste -s -d'|' -)).*" -exec rsync -R '{}' ~/temp/my-new-directory \;

file-1.orgओआरजी फ़ाइल के साथ बदलें जिसके अटैचमेंट को आप स्थानांतरित करना चाहते हैं, और ~/temp/my-new-directoryआपकी नई निर्देशिका के स्थान के साथ। dataउन में अटैचमेंट फ़ाइलों के साथ एक निर्देशिका बनाई जाएगी (यदि आप प्रतिलिपि के बजाय स्थानांतरित करना चाहते हैं, --remove-source-filesतो rsyncकमांड को पास करें )।

यह macOS पर परीक्षण किया गया था। आपको -Eअन्य प्लेटफार्मों पर ध्वज को छोड़ना पड़ सकता है ।

नोट: कृपया इसे अपनी फ़ाइलों की एक प्रति पर करें । मैं एमएसीएस में विशेषज्ञ नहीं हूं, कभी भी ओआरजी-मोड अटैचमेंट का उपयोग नहीं किया है और मुझे इस तरह के हैकी फाइल हेरफेर का उपयोग करने का अनुभव नहीं है। यह आपके ओआर-मोड फ़ोल्डर को विस्मरण में उड़ा सकता है इसलिए इसे पहले वापस करें।


0

मार्सेल सैमन के जवाब के आधार पर, निम्न स्क्रिप्ट ने मेरे लिए आर्कलिनक्स के तहत काम किया:

find data -regextype awk -type f -iregex ".*($(cat file-1.org | grep -i '^:id:' | perl -pe 's/^\s*:id:\s*(\w{2})([\w-]+)$/$1\/$2/i' | paste -s -d'|' -)).*"  -exec rsync -R '{}' ~/temp/my-new-directory \;

प्रतिलिपि की जाने वाली फ़ाइलों की सूची प्राप्त करने के लिए निम्न स्क्रिप्ट का उपयोग करें:

find data -regextype awk -type f -iregex ".*($(cat file-1.org | grep -i '^:id:' | perl -pe 's/^\s*:id:\s*(\w{2})([\w-]+)$/$1\/$2/i' | paste -s -d'|' -)).*"

^Grep कमांड के बिना , मुझे ": id:" वाले ईमेल लिंक से झूठी सकारात्मक जानकारी मिली।

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