Você está procurando test
:
-h pathname
True if pathname resolves to a file that exists and is a symbolic link. False if pathname cannot be resolved, or if pathname resolves to a file that exists but is not a symbolic link. If the final component of pathname is a symlink, that symlink is not followed.
A maioria das shells tem isso como um builtin, mas test
também existe como um programa independente, que pode ser chamado de outros programas sem invocar um shell intermediário. Este é o caso da maioria dos builtins que os shells podem ter, exceto aqueles que atuam no próprio shell (builtins especiais como break
, export
, set
,…).
[ -h pathname ]
é equivalente a test -h pathname
; [
funciona exatamente da mesma maneira que test
, exceto que [
requer um argumento ]
extra no final. [
, como test
, existe como um programa independente.
Por exemplo:
$ ln -s foo bar
$ /usr/bin/test -h bar && echo y
y