cp जो पूछा जाता है उससे अधिक नकल करना


3

मैं निम्नलिखित के साथ बैश में जाता हूं

cp -r "/wordpress/3.0.1/" "/mySite/"

और परिणाम है /mySite/3.0.1/ लेकिन मैं नहीं चाहता और न ही यह समझता हूं कि क्यों 3.0.1/ लक्ष्य गंतव्य में दिखाई देता है।

मैं क्या गलत कर रहा हूं?

जवाबों:


0

cp -r /wordpress/3.0.1/* / mySite


वह किसी भी फाइल को कॉपी नहीं करेगा /wordpress/3.0.1/ जिसका नाम a से शुरू होता है .। बेहतर उपयोग cp -r /wordpress/3.0.1/. /mySite/
Gilles

@ मैं इसे एक कोशिश करूँगा, tx
fabjoa

3

यह से एक विचलन है POSIX विनिर्देशन , वह कौन सा राज्य है

एक पाथनाम जिसमें कम से कम एक गैर-स्लैश वर्ण होता है और जो एक या एक से अधिक ट्रेलिंग स्लैश के साथ समाप्त होता है, जैसे कि एकल डॉट वर्ण ('।') को पथनाम में जोड़ा जाता है।

लेकिन लिनक्स के तहत (यानी के साथ cp से कमान GNU कोरुटिल्स , cp -r foo/ bar/ की तरह अभिनय करता है cp -r foo bar/ बजाय cp -r foo/. bar/ कब foo एक निर्देशिका है। (जीएनयू कोरयूटिल्स एकमात्र दोषी नहीं है, मैंने अभी ओपनबीएसडी में वही व्यवहार देखा है जो आमतौर पर मानकों के अनुपालन पर अच्छा है।

तुम दौड़ सकते हो cp -r "/wordpress/3.0.1/." "/mySite/" (यानी स्रोत को समाप्त करें /. ) से बचने के लिए 3.0.1/ स्तर। एक और संभावना है rsync -r "/wordpress/3.0.1/" "/mySite/"

एक तरफ के रूप में, मैं आदत में होने की सलाह देता हूं cp -a बजाय cp -r यदि आप लिनक्स और सिगविन के अलावा अन्य यूनियनों का उपयोग नहीं करते हैं। जब आप अंतर नोटिस करते हैं, -a (जो अनुमति और प्रतीकात्मक लिंक को संरक्षित करता है) आमतौर पर सही है अन्य यूनियनों पर, का उपयोग करें cp -Rp। साथ में rsync, उपयोग -a


धन्यवाद! क्या मार्ग को पकड़ने के लिए दोहरे उद्धरण चिह्नों का उपयोग महत्वपूर्ण है?
fabjoa

@fabjoa: यहां दोहरे उद्धरण आवश्यक नहीं हैं। आप अक्सर उन्हें (अच्छी तरह से लिखी गई) स्क्रिप्ट में पाएंगे, क्योंकि वे चर प्रतिस्थापन के आसपास आवश्यक हैं (जैसे cp -- "$1" "$destination" )। जब फ़ाइल नाम को सीधे निर्दिष्ट किया जाता है, तो उद्धरण केवल तभी आवश्यक होते हैं जब नाम में वर्ण होते हैं जो शेल के लिए विशेष होते हैं, जैसे रिक्त स्थान; एकल उद्धरण (एपोस्ट्रोफिस) 'foo' और अधिक सामान्य होगा क्योंकि वे एकल उद्धरणों को छोड़कर सब कुछ की रक्षा करते हैं। (शैल उद्धृत नियम जटिल हैं।)
Gilles

@ गिल्स मैं उलझन में हूँ " cp -r foo/ bar/ की तरह अभिनय करता है cp -r foo bar/ बजाय cp -r foo bar/ "- मैं उम्मीद करूंगा कि अंतिम दो अलग-अलग हों
Volker Siegel

@VolkerSiegel मेरा मतलब था "बजाय cp -r foo/. bar/ "। निश्चित, धन्यवाद।
Gilles
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.