O que você está fazendo é tentar executar ls
em ..//usr/local/bin/bash
, o que não sai:
$ echo ../$(which bash)
..//usr/local/bin/bash
ao mesmo tempo em que você está usando ls -l ..$(which bash)
, os resultados dependem de onde seu diretório de trabalho atual está, porque você está abordando relativamente.
Portanto, este não deve dar nenhum erro (ele procura pelo arquivo não o DIR pai):
$ cd /usr
$ ls -ld ../$(which bash)
Você precisa usar o comando dirname
:
$ dirname $(which bash)
/bin
ou:
$ ls -ld $(dirname $(which bash))
drwxr-xr-x 2 root root 4096 Oct 17 16:46 /bin
Quando seu arquivo é um link (como bash no seu caso, e no meu caso):
$ ls -ld $(dirname $(readlink -f $(which sh)))
drwxr-xr-x 2 root root 4096 Oct 17 16:46 /bin