मेरे पास निम्नलिखित कमांड के साथ एक अजीब मुद्दा है:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
कमान उपनाम नहीं है
# type chown
chown is hashed (/bin/chown)
मैं आगे कहां देख सकता हूं?
मेरे पास निम्नलिखित कमांड के साथ एक अजीब मुद्दा है:
# chown -R myuser:mygroup *
chown: invalid option -- 'i'
Try 'chown --help' for more information.
कमान उपनाम नहीं है
# type chown
chown is hashed (/bin/chown)
मैं आगे कहां देख सकता हूं?
जवाबों:
जैसे कि ग्लब (पाथनाम) का विस्तार पहले chownरनों से पहले शेल द्वारा किया जाता है , ग्लोब पैटर्न *को वर्तमान निर्देशिका में सभी फाइलों तक विस्तारित किया जाता है और chownइसे इसके विकल्प और तर्क के रूप में प्राप्त किया जाता है। आपके पास वर्तमान निर्देशिका में एक फ़ाइल है जो इसके साथ शुरू होती है -i, इसलिए chownइसे एक विकल्प के रूप में विचार कर रहा है, न कि तर्क (फ़ाइल नाम) के रूप में।
आपको निम्न --विकल्पों के अंत का संकेत देने के लिए उपयोग करने की आवश्यकता है chown:
chown -R myuser:mygroup -- *
या स्पष्ट रूप से इसे तर्क के रूप में इंगित करने के लिए ग्लोब पैटर्न ( *) से पहले ./:
chown -R myuser:mygroup ./*
chown -R myuser:mygroup ./*, यह इसके में विभाजित हो chown, -R, myuser:mygroup, ./*और फिर ग्लोब पैटर्न इसी फाइल सिस्टम पथ, जैसे के साथ बदल देता है। chown, -R, myuser:mygroup, ./-index.html, ./favicon.ico, ./My -ve Numbers। चूँकि केवल पहला अक्षर डैश के लिए दिखता है जब विकल्प आर्ग्स की तलाश में होता है, तो यह मान लेगा कि वे स्थितियाँ हैं।
समस्या -index.phpफ़ोल्डर में नामित एक फ़ाइल थी , इसलिए चाउने ने इसे कमांड लाइन विकल्प के रूप में व्याख्या की।
समाधान दोहरे-हाइफ़न का उपयोग कर रहा था chown -R myuser:mygroup -- *
chown -R myuser:mygroup ./*