2011-11-17 10 views
46
[email protected]$ whoami 
    max 
    [email protected]$ ls -la ./defines.php 
    -rwxrwxrwx 1 max max 1985 2011-11-16 02:01 ./defines.php 
    [email protected]$ chmod 0777 ./defines.php 
    [email protected]$ rm ./defines.php 
    rm: cannot remove `./defines.php': Permission denied 
    [email protected]$ 

मैं इस फ़ाइल को कैसे हटा सकता हूं?आरएम: हटा नहीं सकता: अनुमति अस्वीकार

[email protected]$ chmod 777 . 

ठीक है, यह सब कुछ कहना नहीं है:

+0

क्या उसी निर्देशिका में फ़ाइल है जो आप कमांड चला रहे हैं? तो यह केवल 'आरएम defines.php' होना चाहिए। आप '। /' क्यों प्रीपेड कर रहे हैं? –

+0

अन्य बात: यह 'chmod 777' –

+1

होना चाहिए इससे कोई फर्क नहीं पड़ता। 'फाइल' और'।/file' बराबर हैं। – Femaref

उत्तर

123

कोड सब कुछ कहते हैं।

यूनिक्स और लिनक्स में, फ़ाइल को हटाने की क्षमता उस फ़ाइल के एक्सेस बिट्स द्वारा निर्धारित नहीं है। यह निर्देशिका के एक्सेस बिट्स द्वारा निर्धारित किया जाता है जिसमें फ़ाइल होती है।

इस बारे में सोचें - फ़ाइल को हटाने से उस फ़ाइल को संशोधित नहीं किया जाता है। आप फ़ाइल में नहीं लिख रहे हैं, तो फाइल पर "डब्ल्यू" क्यों होना चाहिए? फ़ाइल को हटाने से फ़ाइल को इंगित करने वाली निर्देशिका को संपादित करने की आवश्यकता होती है, इसलिए आपको उस निर्देशिका पर "w" की आवश्यकता होती है।

+2

ओएमजी के साथ निर्देशिका अनुमतियां देख सकते हैं! इस जवाब ने मुझे एक और समस्या का समाधान दिया, यह वही तर्क फाइलों को पढ़ने के लिए लागू होता है, न केवल हटाएं। –

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