2011-10-27 100 views
19

我試圖測試一個文件是否在bash腳本中爲所有者設置了執行位。檢查文件所有者權限

我知道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

if [$(stat -c%a some-file)!= 600];那麼...就是我想要的。 –

+3

'%a'是一種很棒的格式。檢索第4個字符的簡單方法是'stat -c%A someFile |切-c4'。 –