2013-02-13 42 views
11

के रूप में फ़ाइल की अनुमति मिलती है यह करना वास्तव में आसान होना चाहिए लेकिन पूरी तरह से खाली हो गया है।यूनिक्स/लिनक्स/मैक ओएसएक्स को

-rwxr-xr-x 1 james staff 68 8 Feb 13:33 basic.sh* 
-rw-r--r-- 1 james staff 68 8 Feb 13:33 otherFile.sh* 

कैसे मुझे लगता है कि एक संख्या में उपयोग के लिए chmod साथ (मैनुअल रूपांतरण कर बाहर के साथ) अनुवाद नहीं करते chmod 755 otherFile.sh की तरह: मैं ls का उपयोग कर ला की तरह कुछ दे सकता है जिसके द्वारा फ़ाइलों की अनुमति देख सकते हैं।

+1

सिर्फ एक नोट जो आपके शोध को आसान बना सकता है: मैक ओएस एक्स बीएसडी यूनिक्स है और समस्या को हल करने का कोई यूनिक्स तरीका भी करेगा। (जैसा कि कई लिनक्स तरीके होंगे।) – Jesper

+0

यह बहुत अच्छी सलाह है, धन्यवाद @ जेस्पर। – AJP

उत्तर

18

stat -f "%Lp" [filename] ओएस एक्स 10.8 में मेरे लिए काम करता है।

+0

10.7.5 – AJP

+0

पर काम नहीं करता है अजीब, 10.7 में 'stat' के लिए मैन पेज यह ऐसा लगता है कि उन विकल्पों को 10.8 में करने के तरीके को काम करना चाहिए। आप क्या त्रुटि प्राप्त कर रहे हैं? –

+1

हम्म, यह अजीब बात है, मैंने सोचा कि आपका जवाब कुछ ऐसा था: 'stat -c"% a% w "[filename] 'जो काम नहीं करता है। आपका जवाब हालांकि काम करता है। – AJP

1

आप ls के बजाय stat कमांड का उपयोग करने में सक्षम होना चाहिए। manpage को देख से, इस फाइल अनुमति प्राप्त करने के लिए काम करना चाहिए:

for f in dir/* 
do 
    perms=$(stat -f '0%Hp%Mp%Lp' $f) 
    echo "$f has permissions $perms" 
done 

(हालांकि मैं अपने मैक पर इस समय नहीं कर रहा हूँ और इसलिए यह परीक्षण नहीं कर सकते)।

+0

@AJP, मैनपेज के आगे के अध्ययन से, मुझे लगता है कि आपको सभी फ़ाइल अनुमतियां प्राप्त करने के लिए एचपी, एमपी और एलपी निर्दिष्ट करने की आवश्यकता है। कृपया मेरा संपादन देखें। – trojanfoe

+0

हां मेरा संपादन सिर्फ यह दिखाने के लिए था कि मैं केवल '755' भाग चाहता था ताकि मैं इसे पढ़ने, लिखने और निष्पादन के लिए अनुमतियों को बदलने के लिए chmod के साथ उपयोग कर सकूं। लेकिन आपका जवाब पूर्ण अनुमति देता है। – AJP

+0

@AJP मुझे समझ में नहीं आता कि दोनों उत्तरों सही कैसे हो सकते हैं। क्या आप कह रहे हैं कि 'stat -f'% एचपी% एमपी%% lp'' ** और ** 'stat -f '% lp'' समान परिणाम देते हैं? – trojanfoe