2011-10-27 17 views
19

मैं अगर एक फ़ाइल निष्पादित बिट बैश लिपि में मालिक के लिए निर्धारित है परीक्षण करने के लिए कोशिश कर रहा हूँ।जांच की जा रही फ़ाइल स्वामी की अनुमतियां

मैं बयान चल उपयोगकर्ता के लिए अनुमति निष्पादित लिए if [ -x filename ] चेकों पता, लेकिन मैं अगर मालिक यह है पता करने की जरूरत। मालिक निर्दिष्ट करने का कोई तरीका है?

उत्तर

34

आप stat का उपयोग फाइल अनुमति प्राप्त करने के लिए, और चरित्र आप चाहते हैं पाने के लिए एक और आदेश के साथ उन्हें पार्स कर सकते हैं।

stat -c %A someFile 

रिटर्न कुछ की तरह:

-rw-rw-r-- 

संपादित करें: ये रहा:

stat -c %A someFile | sed 's/...\(.\).\+/\1/' 

रिटर्न या तो - या x यदि मालिक को अंजाम दिया है।

संपादित करें 2: पूरा होने की खातिर के लिए:

if [ `stat -c %A someFile | sed 's/...\(.\).\+/\1/'` == "x" ] 
then 
    echo "Owner has execute permission!" 
fi 
+1

महान काम किया। धन्यवाद – aport002

+14

अगर [$ (stat -c% कुछ फ़ाइल)! = 600]; तब ... मैं चाहता था कि मैं चाहता था। –

+3

'% ए' एक महान प्रारूप है। चौथे चरित्र को पुनः प्राप्त करने का एक आसान तरीका 'stat -c% a someFile | है कट-सी 4'। –

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