シェルスクリプトで書き込み権限の有無をチェックする方法
目次
スポンサードリンク
Linuxのシェルスクリプトでディレクトリやファイルを作成する際は、その場所に書き込み権限があるか事前にチェックする必要があります。この記事ではサンプル付きで書き込み権限のチェック方法を解説します。
書き込み権限をチェックする方法
書き込み権限をチェックする際は、-wオプション付きの test コマンドを使用します。mkdir コマンドは指定されたパスに新しいディレクトリを作成します。 基本的な構文は以下のとおりです。
test -w [ファイル/ディレクトリパス]
または
[ -w "test.txt" ]
サンプルコード
下記サンプルコードでは変数FILE_PATHで定義したパスに書き込み権限があるかチェックし、結果に応じてメッセージをコンソールに出力しています。
#!/bin/bash
# ファイルパスを定義します。
FILE_PATH="/path/to/file"
# ファイルの書き込み権限をチェックします。
if [ -w "$FILE_PATH" ]; then
echo "ファイル $FILE_PATH は書き込み可能です。"
else
echo "ファイル $FILE_PATH は書き込みできません。"
fi
複数条件を指定する場合は、AND条件 && 、OR条件 || を使い、他の条件と組み合わせて使うことができます。
if [ -w "test.txt" ] && [ -f "test.txt" ]; then
echo "ファイル test.txt は書き込み可能で、かつ存在します。"
fi
シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
リンク
最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
リンク
Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法