こんにちは。
regular ファイルの存在を判定したい場合、test
コマンドで、[ -f $file ]
と判定するとリンクファイルの場合には非存在と判定されます。その場合にも対応するために readlink
の助けを借りました(オリジナルファイルを追跡して判定)。
test_f.sh
#!/bin/sh
[ "$(uname)" = "Darwin" ] && READLINK="greadlink" || READLINK="readlink"
test -f $($READLINK -e $1)
なお上記のように GNU readlink を使うのではなく、どうしても BSD readlink で実現したい場合には、「Macで readlink -f を作る(シェルスクリプト)」などの方法があります。