मौजूदा अनुमतियों को अधिलेखित किए बिना मैं पुनरावर्ती रूप से फ़ाइलों की प्रतिलिपि कैसे बना सकता हूं?


9

जब मैं फ़ाइलों को एक निर्देशिका से दूसरे में कॉपी करता हूं, तो निर्देशिका अनुमतियाँ रीसेट हो जाती हैं (जैसे: 0755 से 0775 तक), और यह समस्या का कारण बनता है, मुझे वापस जाने के लिए मजबूर करता है और मैन्युअल रूप से निर्देशिका अनुमतियाँ रीसेट करता है। मैं वर्तमान में कर रहा हूँcp -r /source/directory /destination/directory

मैं सभी फ़ाइलों और नई निर्देशिकाओं की प्रतिलिपि बनाना चाहता हूं, लेकिन मौजूदा निर्देशिकाओं की अनुमतियों को अधिलेखित नहीं करना चाहता।

जवाबों:


5

लिंक का उपयोग करने के लिए आप ध्वज के साथ cp( cp के लिए मैनपेज ) का उपयोग कर सकते हैं -d, जो इसके बराबर है --no-dereference --preserve=links।

इसे -pऔर -Rझंडे के साथ संयोजित करने के लिए आप आर्काइव फ़्लैग का उपयोग कर सकते हैं -a।


7

ऐड-पी झंडा

cp -pR /source/dir /dest/dir

से man cp:

-p     same as --preserve=mode,ownership,timestamps

2

मेरे ~/.bashrcको शामिल करने के लिए संशोधित किया गया है

alias cp='cp -i --preserve=all'

इसका मतलब है कि जब मैं उपयोग करता हूं cp, तो यह ओवरराइटिंग ( -i) से पहले भी संकेत देगा , और सभी को संरक्षित करेगा (यानी मोड, स्वामित्व, टाइमस्टैम्प; और यदि संभव हो तो अतिरिक्त विशेषताएँ: संदर्भ, लिंक, xattr)।

तुम हमेशा सिर्फ करने के लिए इसे बदल सकता है modeके बजाय allयदि आप चाहें, लेकिन मैं की चूक बदलने के लिए इस उर्फ होने की तरह करते हैं cp।

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