मैं यूनिक्स / लिनक्स में किसी अन्य फ़ोल्डर में फ़ाइलों के साथ फ़ोल्डर की प्रतिलिपि कैसे बना सकता हूं? [बन्द है]


1191

मुझे उस फ़ोल्डर में फ़ाइलों के साथ एक फ़ोल्डर को दूसरे फ़ोल्डर में कॉपी करने के लिए कुछ समस्याएँ हैं। आदेश cp -rफ़ोल्डर में फ़ाइलों की प्रतिलिपि नहीं करता है।




काश यह एक एसई में माइग्रेट हो सकता है जहां यह विषय पर अधिक है।
jrh

6
बैश प्रोग्रामिंग ऑन-टॉपिक है
xskxzr

जवाबों:


1978

वह विकल्प जो आप खोज रहे हैं -R

cp -R path_to_source path_to_destination/
  • यदि destinationमौजूद नहीं है, तो इसे बनाया जाएगा।
  • -Rका मतलब है copy directories recursively-rकेस-असंवेदनशील होने के बाद से आप इसका उपयोग भी कर सकते हैं ।
  • /@ Muni764 की टिप्पणी के अनुसार अनुगामी जोड़ने के साथ बारीकियों पर ध्यान दें ।

5
मुझे आश्चर्य है कि dockerfile में यह सटीक कमांड सभी स्रोत निर्देशिका फ़ाइलों को केवल संपूर्ण निर्देशिका की प्रतिलिपि बनाने के बजाय गंतव्य में कॉपी करता है।
Holms

4
मेरा मानना ​​है कि अंत में '/' का फर्क पड़ता है और आपके अनुभव का हिसाब हो सकता है। यदि स्रोत में अनुगामी स्लैश शामिल है तो यह केवल निर्देशिका में जो है उसे कॉपी करेगा। यदि इसमें अनुगामी स्लैश शामिल नहीं है, तो यह निर्देशिका को भी कॉपी करेगा और फिर इसके अंदर की सामग्री को। मेरी स्मृति यह व्यवहार कमांड द्वारा भिन्न हो सकता है और शायद OS द्वारा घटना थोड़ी। यहाँ अधिक जानकारी के साथ एक संदर्भ है
OllieBrown

23
मैं कहूंगा कि यदि आप स्रोत को शामिल नहीं करना चाहते हैं और आप यह सुनिश्चित करना चाहते हैं कि स्रोत माता-पिता फ़ोल्डर की प्रतिलिपि के बिना सब कुछ कॉपी किया गया है (सिमिलिंक, छिपी हुई फ़ाइलें) -ra स्रोत / का उपयोग करना है। गंतव्य। यह सुनिश्चित करेगा कि फ़ोल्डर की सामग्री की प्रतिलिपि बनाई गई है, लेकिन स्वयं मूल फ़ोल्डर नहीं, जो कभी-कभी काम में आता है। और अंतर है /।
मुनि m६४

यह भी सही ढंग से काम करने लगता है अगर नकल की जाने वाली निर्देशिका प्रतीकात्मक लिंक हैं, जो मेरा उपयोग मामला था।
गदल्या

3
"स्लैश डॉट" के महत्व पर ध्यान दें, cp -r src/. destमुझे पता है कि यह उल्लेख किया गया है, लेकिन मैं अभी भी इसे हर बार याद करता हूं।
bbeecher

368

आप cpकमांड की तलाश कर रहे हैं । आपको निर्देशिकाओं को बदलने की आवश्यकता है ताकि आप उस निर्देशिका से बाहर हों जिसे आप कॉपी करने का प्रयास कर रहे हैं।

यदि आप जिस निर्देशिका की प्रतिलिपि बना रहे हैं उसे कहा जाता है dir1और आप इसे अपने /home/Picturesफ़ोल्डर में कॉपी करना चाहते हैं :

cp -r dir1/ ~/Pictures/

लिनक्स केस-सेंसिटिव है और /प्रत्येक डायरेक्टरी को यह जानने के लिए की जरूरत है कि यह फाइल नहीं है। ~टर्मिनल में एक विशेष चरित्र है जो स्वचालित रूप से वर्तमान उपयोगकर्ता के घर निर्देशिका का मूल्यांकन करता है। यदि आपको यह जानने की आवश्यकता है कि आप किस निर्देशिका में हैं, तो कमांड का उपयोग करें pwd

जब आप नहीं जानते कि लिनक्स कमांड का उपयोग कैसे करना है, तो एक मैनुअल पेज है जिसे आप टाइप करके देख सकते हैं:

man [insert command here]

एक टर्मिनल प्रॉम्प्ट पर।

इसके अलावा, टर्मिनल में टाइप करते समय लंबे फ़ाइल पथों को पूरा करने के लिए, आप Tabपथ टाइप करने के बाद हिट कर सकते हैं और आपको या तो विकल्प के साथ प्रस्तुत किया जाएगा, या यह पथ के शेष भाग को सम्मिलित करेगा।


6
आगे स्पष्ट करने के लिए, इसमें -rविकल्प पुनरावर्ती निर्देशिकाओं को कॉपी करेगा।
TVAN

5
क्या ओपी ने यह निर्दिष्ट नहीं किया कि वह कमांड का उपयोग कर रहा थाcp -r , लेकिन यह ठीक से काम नहीं कर रहा था?
एमडी एक्सएफ

4
मैनपेज के बारे में जानकारी शामिल करने का कारण यह है कि ये झंडे वितरण पर निर्भर हो सकते हैं। हालांकि, अधिकांश भाग के लिए, ऐसा लगता है -r, --recursiveऔर -Rबराबर हैं। यह आम नुकसान भी देगा, जो अच्छा है।
एलेक्स डब्ल्यू

6
यदि आप DIRECTORY को आंशिक रूप से कॉपी करना चाहते हैं और न केवल यह सामग्री है, तो स्रोत फ़ोल्डर में अनुगामी डैश को छोड़ दें। cp -r dir1 ~/Pictures/
mehtunguh 18

105

उपयोग:

$ cp -R SRCFOLDER DESTFOLDER/

4
इस तरह से मैंने इसे किया और demo1_copyपहले से मौजूद नहीं था$ ls demo1 demo3 README.md $ cp -R demo1/ demo1_copy/
HattrickNZ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.