Configuração:
$ /usr/bin/which --show-dot a
./a
$ /usr/bin/which --show-tilde a
~/a
Se você quisesse que a versão .
fosse executada interativamente, mas a versão ~
quando redirecionada, você poderia usar isso como um alias:
/usr/bin/which --show-tilde --tty-only --show-dot
Demo:
# interactive / on a tty
$ /usr/bin/which --show-tilde --tty-only --show-dot a
./a
# not interactive / redirected to a file
$ /usr/bin/which --show-tilde --tty-only --show-dot a > output
$ cat output
~/a
Todas as opções que você especificar depois de --tty-only
serão levadas em conta somente quando a saída for um tty.