To bug-bash@gnu.org:
According this documentation `help test`, I am expecting it should return false on anything other than a regular file, -f FILE True if file exists and is a regular file. but why it returned true on a symlink to a regular file? $ [ -f tmp/sym-link ] && echo true true