mv कमांड कमांड विकल्प के साथ डायरेक्टरी नाम को भ्रमित करता है


11

मेरे पास एक निर्देशिका है --pycache--, जिसे मुझे स्थानांतरित करने की आवश्यकता है __pycache__mvनिम्नलिखित तरीके से कमांड का उपयोग करना , मुझे सूचीबद्ध आउटपुट देता है। मैं CLIजो करना चाहता हूं, उसका उपयोग कैसे कर सकता हूं ?

$ mv --pycache-- __pycache__
/bin/mv: unrecognized option '--pycache--/'

जवाबों:


22

यह फ़ाइल नाम / निर्देशिका के साथ कम पारंपरिक प्रतीकों के साथ शुरू होने वाला एक मानक मुद्दा है। आपकी समस्या यह है कि mv इलाज कर रहा है - pycache-- लंबे विकल्प के नाम के रूप में (क्योंकि यह शुरू होता है -, वहाँ भी छोटे विकल्प हैं, वे साथ शुरू करते हैं -)। लंबी और छोटी विकल्पों के बारे में जानकारी के लिए कृपया मेन्यू देखें।

इस स्थिति में मानक समाधान एक खाली डबल डैश का उपयोग करना है - सभी तर्क से पहले, जो कमांड को बताता है (आपके मामले में एमवी, लेकिन दूसरों के साथ काम करेगा, उदाहरण के लिए cp) जो कि विकल्प के रूप में निम्न प्रकार का इलाज करना बंद कर सकता है और इसका इलाज करेगा तर्क।

इस प्रकार, आपकी आज्ञा बन जाएगी:

$ mv -- --pycache--/ __pycache__

और असफल नहीं होगा।


8
अच्छा जवाब है, लेकिन मुझे लगता है कि आप का मतलब है - कमांड को बताता है कि जो विकल्प के रूप में अनुसरण करता है उसे रोकें और इसे तर्क के रूप में व्यवहार करें, दूसरे तरीके से नहीं।
राउंडटॉवर

1
मुझे लगता है कि यह पहले जोड़ें करने के लिए अधिक पोर्टेबल है ./: mv ./--pycache-- __pycache__
केविन

3
@ केविन तभी काम करता है जब तर्क फ़ाइल नाम हो।
स्टारब्लू

15

आपका पहला चरित्र कमांड के -लिए अस्पष्ट है mv(या बल्कि, यह स्पष्ट रूप से इसका मतलब है कि एक विकल्प नाम इस प्रकार है)।

इसके बजाय यह प्रयास करें:

mv ./--ppycache-- __pycache__

स्रोत: linux.about.com


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