#navi(../)
* ファイルのパーミッションを確認する方法 [#s4f73c0d]
ファイルのパーミッションを判別するスクリプトサンプルを以下に記します。~
利用したシェルはbashになります。

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* 読み込み可能なファイルかどうかを調べる [#a632824b]
読み込み可能かどうかを確認するには、''-r''を利用すれば簡単に確認することができます。~
以下のサンプルスクリプトはファイルが読み込み可能かどうかを確認するスクリプトです。~
chmodコマンドでreadのパーミッションを変更し''-r''の動作確認を行いました。

** サンプルスクリプト [#r26353c1]
#ref(sample-01.sh)

 #!/bin/bash
 
 echo "read" >  test.txt
 chmod -r test.txt
 ls -l test.txt
 
 if [ -r test.txt ]; then
   echo "READ OK"
 else
   echo "READ NG"
 fi
 
 chmod +r test.txt
 ls -l test.txt
 if [ -r test.txt ]; then
   echo "READ OK"
 else
   echo "READ NG"
 fi
 
 rm test.txt
 
** サンプルスクリプト実行出力 [#rc74cd7e]
上記のサンプルスクリプトの実行結果です。
読み込み(r)を変更し、読み込み可能の場合は READ OK, 読み込み不可能の場合は READ NG が出力されています。
 [sakura@centos6 ~]$ chmod +x sample-01.sh 
 [sakura@centos6 ~]$ ./sample-01.sh 
 --w--w---- 1 sakura sakura 5  5月 12 23:18 2012 test.txt
 READ NG
 -rw-rw-r-- 1 sakura sakura 5  5月 12 23:18 2012 test.txt
 READ OK

* 書き込み可能なファイルかどうかを調べる [#we81f40d]
書き込み可能かどうかを確認するには、''-w''を利用すれば簡単に確認することができます。~
以下のサンプルスクリプトはファイルが書き込み可能かどうかを確認するスクリプトです。~
chmodコマンドでwriteのパーミッションを変更し''-w''の動作確認を行いました。

** サンプルスクリプト [#i0824798]
#ref(sample-02.sh)
 #!/bin/bash
 
 echo "write" >  test.txt
 
 chmod -w test.txt
 ls -l test.txt
 if [ -w test.txt ]; then
   echo "WRITE OK"
 else
   echo "WRITE NG"
 fi
 
 chmod +w test.txt
 ls -l test.txt
 if [ -w test.txt ]; then
   echo "WRITE OK"
 else
   echo "WRITE NG"
 fi
 
 rm test.txt

** サンプルスクリプト実行出力 [#a1ef5c6b]
上記のサンプルスクリプトの実行結果です。
書き込み(w)を変更し、書き込み可能の場合は WRITE OK, 書き込み不可能の場合は WRITE NG が出力されています。
 [sakura@centos6 ~]$ chmod +x sample-02.sh 
 [sakura@centos6 ~]$ ./sample-02.sh 
 -r--r--r-- 1 sakura sakura 6  5月 12 23:27 2012 test.txt
 WRITE NG
 -rw-rw-r-- 1 sakura sakura 6  5月 12 23:27 2012 test.txt
 WRITE OK

* 実行可能なファイルかどうかを調べる [#cd7be657]
実行可能かどうかを確認するには、''-x''を利用すれば簡単に確認することができます。~
以下のサンプルスクリプトはファイルが実行可能かどうかを確認するスクリプトです。~
chmodコマンドでexecuteのパーミッションを変更し''-x''の動作確認を行いました。

** サンプルスクリプト [#l7c4bb21]
#ref(sample-03.sh)
 #!/bin/bash
 
 echo "execute" >  test.txt
 
 chmod -x test.txt
 ls -l test.txt
 if [ -x test.txt ]; then
   echo "EXECUTE OK"
 else
   echo "EXECUTE NG"
 fi
 
 chmod +x test.txt
 ls -l test.txt
 if [ -x test.txt ]; then
   echo "EXECUTE OK"
 else
   echo "EXECUTE NG"
 fi
 
 rm test.txt

** サンプルスクリプト実行出力 [#l88fcb44]
上記のサンプルスクリプトの実行結果です。
実行可能(x)を変更し、実行可能の場合は EXECUTE OK, 実行不可能の場合は EXECUTE NG が出力されています。
 [sakura@centos6 ~]$ chmod +x sample-03.sh 
 [sakura@centos6 ~]$ ./sample-03.sh 
 -rw-rw-r-- 1 sakura sakura 8  5月 12 23:35 2012 test.txt
 EXECUTE NG
 -rwxrwxr-x 1 sakura sakura 8  5月 12 23:35 2012 test.txt
 EXECUTE OK

* 関連資料 [#j4072642]
-[[シンボリックリンクかどうか判別する方法>逆引きシェルスクリプト/シンボリックリンクかどうか判別する方法]]
-[[ファイルかディレクトリかを判別する方法およびファイル・ディレクトリの有無>逆引きシェルスクリプト/if文のサンプル・ファイル・ディレクトリ編]]
-[[ファイルサイズが0より大きいかを確認する>逆引きシェルスクリプト/ファイルサイズが0より大きいかを確認する]]

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS