このエントリーをはてなブックマークに追加


ファイルのパーミッションを確認する方法

ファイルのパーミッションを判別するスクリプトサンプルを以下に記します。
利用したシェルはbashになります。


読み込み可能なファイルかどうかを調べる

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

サンプルスクリプト

#!/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

サンプルスクリプト実行出力

上記のサンプルスクリプトの実行結果です。 読み込み(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

書き込み可能なファイルかどうかを調べる

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

サンプルスクリプト

#!/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

サンプルスクリプト実行出力

上記のサンプルスクリプトの実行結果です。 書き込み(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

実行可能なファイルかどうかを調べる

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

サンプルスクリプト

#!/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

サンプルスクリプト実行出力

上記のサンプルスクリプトの実行結果です。 実行可能(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

関連資料



添付ファイル: filesample-01.sh 522件 [詳細] filesample-02.sh 477件 [詳細] filesample-03.sh 475件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:26:59