シェルスクリプトでシンボリックリンクか確認する方法

2021-06-25

以前に「シャルスクリプトでファイル・ディレクトリ有無の確認方法「if文」 」と記事を書きましたが、確認する先がシンボリックリンクだとちゃんと動かなかったのでif文でシンボリックリンクの場合の扱いをまとめました

シンボリックリンクの先が通常のファイルかどうかを判定

シンボリックリンクの先がファイルかどうかの判断する場合は、if [-f (file)]; then 〜 fi のように記述します

#!/bin/bash
 
 
#シンボリックリンク(/var/tmp/hoge.txt)の先がファイルかどうか判断
if [ -f /var/tmp/hoge.txt] ; then
  echo "OK"
else
  echo "NG"
fi

シンボリックリンクの先が通常のディレクトリかどうかを判定

シンボリックリンクの先がディレクトリかどうかの判断する場合は、if [ -d (file)]; then 〜 fi のように記述します

#!/bin/bash

#シンボリックリンク(/var/tmp/)の先がディレクトリかどうか判断
if [ -d /var/tmp/] ; then
  echo "OK"
else
  echo "NG"
fi

ファイル・ディレクトリがシンボリックリンクかどうかを判定

ファイル・ディレクトリがシンボリックリンクかどうかを判断するには、if [ -L (file)]; then 〜 fi のように記述します

#!/bin/bash

if [ -L /etc/rc.local ]; then
  echo "OK"
else
  echo "NG"
fi

 

スポンサーリンク

0
0