それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

bash でファイルの存在(ディレクトリ・ファイル)を確認する方法

パスが存在するか否か、ファイルか否か、ディレクトリか否かを調べるには

path=/usr/local/bin
if [  -a $path ]; then
  echo $path is exists
if [  -f $path ]; then
  echo $path is exists
else if [  -d $path ]; then
  echo $path is directory
else
 echo $path does not exists 
fi
実行結果
takuya@air:~$ bash  f_test.sh
/usr/local/bin is exists
/usr/local/bin is directory

コレをつかって、bashrcでエラーを出さずに書くことができます。

存在確認 -a : 該当パスの存在を確認する

path=/usr/local/bin
if [  -a $path ]; then
  echo $path is exists
fi

ファイル判定 -f :該当パスがファイルかどうか判定する

path=/usr/local/bin
if [  -f $path ]; then
  echo $path is file
fi

ディレクトリ判定 -d : 該当パスがディレクトリかどうか判定する

path=/usr/local/bin
if [  -d $path ]; then
  echo $path is directory
fi

ファイルか否かを調べるには

path=/usr/local/bin
if [ ! -f $path ]; then
  echo $path is not file
fi

ディレクトリか否かを調べるには

path=/usr/local/bin
if [ ! -d $path ]; then
  echo $path is not file
fi

非存在を調べるには

path=/usr/local/bin
if [ ! -a $path ]; then
  echo $path is not file
fi