#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)