Se você iniciou sort
nesta mesma sessão de shell antes de instalar seu link simbólico, bash
armazenou em cache os resultados de pesquisa de caminho. Use type sort
para verificar se ele responde a sort is hashed (/usr/bin/sort)
.
Estou no OSX e instalei o Homebrew para obter os coreutils GNU. Eu queria que gsort
fosse usado em vez do comando sort
pré-instalado, então criei um link simbólico para gsort
. Minha experiência limitada me diz que executar sort
do CL ou de um script usará gsort
, mas não é isso que está acontecendo:
$ which gsort; which sort
/usr/local/bin/gsort
/usr/local/bin/sort
$ ll /usr/local/bin/ | fgrep sort
1083450 lrwxr-xr-x 1 alex admin - 34B Mar 23 15:56:52 2016 gsort@ -> ../Cellar/coreutils/8.25/bin/gsort
1083466 lrwxr-xr-x 1 alex admin - 35B Mar 23 15:56:52 2016 gtsort@ -> ../Cellar/coreutils/8.25/bin/gtsort
1088327 lrwxr-xr-x 1 alex admin - 34B Mar 23 16:57:41 2016 sort@ -> ../Cellar/coreutils/8.25/bin/gsort
$ echo ${PATH}
/usr/local/opt/gnu-sed/bin/:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
$ gsort --version | fgrep GNU
sort (GNU coreutils) 8.25
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
$ /usr/local/bin/sort --version | fgrep GNU
sort (GNU coreutils) 8.25
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
$ sort --version | fgrep GNU
sort (GNU coreutils) 5.93
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
Observe que, ao verificar a versão de gsort
e sort
(ao usar o caminho absoluto para o symlink), ela mostra corretamente a versão mais nova do coreutils, mas executar sort
ainda me fornece a versão antiga e pré-instalada. Alguém pode me dizer por quê?