2011-10-27 21 views
19

Bir dosya bash komut sahibi için belirlenen yürütmek bit varsa test etmek çalışıyorum.denetleniyor Dosya sahibi izinleri

Ben deyimi çalışan Kullanıcı için çalıştırma izni için if [ -x filename ] çek biliyorum ama sahibi o olup olmadığını bilmek gerekir. Sahibini belirtmenin bir yolu var mı?

cevap

34

dosya izinleri almak için stat kullanın ve istediğiniz karakteri almak için başka komutla bunları ayrıştırmak olabilir. gibi

stat -c %A someFile 

İade şey:

-rw-rw-r-- 

DÜZENLEME: İşte gitmek:

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

İade ya - veya x sahibi yürütmek varsa.

DÜZENLEME 2: Tamamlama aşkına:

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

harika çalıştı. Teşekkür – aport002

+14

eğer [$ (istatistik -c% a bazı-dosyası) = 600!]; O zaman istediğim şeydi. –

+3

'% a' büyük biçimidir. 4. karakteri almak için daha basit bir yol 'stat -c% A someFile | kesilmiş -c4'. –