2009-05-15 15 views
23

मेरी पुरानी और नई निर्देशिका में एक ही फ़ोल्डर्स और फाइलें हैं।निर्देशिका स्थानांतरित करने के लिए लिनक्स कमांड

मैं कोशिश:

mv -if old/* new/* 

और प्राप्त होने वाले त्रुटि

mv: खुद की उपनिर्देशिका

मैं इसे कैसे ले जा सकते हैं करने के लिए `./xxxxxx 'स्थानांतरित नहीं कर सकते?

+10

यह एक बिल्कुल अच्छा सवाल है जो स्टैक ओवरफ्लो से संबंधित है। यह माना जाता है कि यह एक मूर्ख गलती है - लेकिन यही वह है जो एसओ के लिए है; यह लोगों को प्रश्न पूछने और उत्तर से सीखने की अनुमति देकर मूर्खता से उबरने में मदद करता है। एसओ ब्लॉग और पॉडकास्ट # 53 देखें (जोएल का कहना है कि स्टैक ओवरफ़्लो के लिए कोई सवाल बहुत आसान नहीं है ...)। –

+0

लेकिन यह एक प्रोग्रामिंग सवाल नहीं है। क्या यह सर्वरफॉल्ट पर नहीं है? –

+0

सर्वरफॉल्ट अभी भी निजी बीटा में है! – alamar

उत्तर

29

आपको पीछे * के बिना mv -if old/* new/ का उपयोग करना चाहिए।

इसका कारण यह है कि यह

mv -if old/foo old/bar old/baz new/foo new/bar new/baz 

को unrolled अर्थात नए/baz

में सब कुछ ले जाने के इस नहीं है कि तुम क्या चाहते थे है।

+0

मैंने एक लिखित गलती की। एमवी- पुराना/* नया/ काम नहीं – Qooe

+2

'काम नहीं' बेकार है। यह क्या कहता है? आपकी कोशिश के व़क्त क्या होता है? – alamar

5
[email protected]:/tmp/experiment$ ls a 
11 22 33 
[email protected]:/tmp/experiment$ ls b 
22 33 
[email protected]:/tmp/experiment$ ls 
a b 
[email protected]:/tmp/experiment$ mv a/* b 
[email protected]:/tmp/experiment$ ls a 
[email protected]:/tmp/experiment$ ls b 
11 22 33 

यह काम करता है। आप क्या हासिल करने का प्रयास कर रहे हैं? क्या आप इनपुट डेटा को किस तरह दिखाना चाहिए और आउटपुट डेटा कैसा दिखना चाहिए इसका एक संक्षिप्त उदाहरण लिख सकते हैं? सच्चाई यह है कि मुझे नहीं पता कि आप क्या करने की कोशिश कर रहे हैं :) मेरी मदद करने में मेरी सहायता करें।

1

यदि आप एक ext2/3/4 फ़ाइल सिस्टम से एक FAT32 फ़ाइल सिस्टम में प्रतिलिपि बना रहे हैं, और फ़ाइल नाम के FAT32 नामकरण सम्मेलनों के लिए एक अवैध वर्ण है, तो आपको यह बहुत परेशान और नरक त्रुटि संदेश के रूप में गलत लगता है। मुझे कैसे पता चलेगा? मैं इस बग के साथ कुश्ती - हाँ, यह एक केर्नल बग है - यह मेरे सामने आने से 6 घंटे पहले। मैंने सोचा कि यह एक शेल दुभाषिया त्रुटि थी, मैंने सोचा कि यह एक "एमवी" त्रुटि थी - मैंने कई अलग-अलग गोले की कोशिश की, सबकुछ। इस प्रयोग को आजमाएं: एक एक्सटी फाइल सिस्टम पर, "स्पर्श करें" ए: बी '"उन्हें" एमवी "इसे एक FAT32 फ़ाइल सिस्टम पर करें। इसे आज़माएं, आप परिणाम (नफरत) का आनंद लेंगे। '<' और '>' (\ 074 और \ 076) के लिए भी यही सच है।

"मैन एमवी" के लिए धन्यवाद - यह एक वास्तविक बड़ी मदद है, अपने दिन की नौकरी छोड़ें मत।

1

क्या आपको जवाब मिल सकता है लेकिन उत्तर से ऊपर मेरे लिए काम नहीं कर रहा है .... और अंततः बहुत सारे शोधों को मुझे जवाब मिला। (समस्या फाइल-स्वामित्व के कारण है)
और बस कमांड और उसके काम से पहले सुडो डाल दें .... :) सीपी और एमवी कमांड के लिए वही बात।

sudo mv -if old/* new/ 
2

ध्यान दें कि mv किसी/* बी/फ़ाइलों को स्थानांतरित नहीं है * (फ़ाइल नाम के साथ शुरू '।') एक में/b करने के लिए/

पूर्व:।

$ mkdir -p a/d b && touch a/f a/.f a/d/.f 
$ mv a/* b/ 
$ ls -a a/ 
. .. .f 
संबंधित मुद्दे

 संबंधित मुद्दे