2011-10-27 21 views
19

ファイルの所有者に実行ビットがbashスクリプトで設定されているかどうかをテストしようとしています。ファイル所有者のアクセス許可を確認する

私は知っていますif [ -x filename ]ステートメントを実行しているユーザーの実行権限をチェックしますが、所有者がそれを持っているかどうかを知る必要があります。所有者を指定する方法はありますか?

答えて

34

statを使用してファイルのアクセス許可を取得し、別のコマンドで解析して目的の文字を取得することができます。

-rw-rw-r-- 

EDIT:何かのような

stat -c %A someFile 

戻りは、ここに行く:

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

返し-またはxのいずれかを所有者が実行している場合。

EDIT 2:完了の便宜上

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

はとてもうまくいきました。ありがとう – aport002

+14

[$(stat -c%a some-file)!= 600];それから...私が望んでいたものだった。 –

+3

'%a'は素晴らしいフォーマットです。 4番目の文字を取得する簡単な方法は 'stat -c%A someFile |カット-c4'。 –

関連する問題