No meu novo sistema mac os/Darwin, minha find
ferramenta é uma versão BSD de 11 anos. Eu usei MacPorts para instalar uma versão mais atual: GNU's find
, que MacPorts nomeou gfind
e colocou em /opt/local/bin/
. O antigo fornecido pela Apple find
permanece no formato /usr/bin/find
.
Eu preciso manter a versão antiga find
no caso de ela ainda ser usada pelo sistema, mas prefiro digitar find
na linha de comando em vez de gfind
. Velhos hábitos e tudo mais...
Eu sei que posso executar gfind
ao entrar find
criando um link
in /opt/local/bin/
(é antes /usr/bin
no meu PATH) ou criando um alias
in .zshrc
. Ambos funcionam bem. Meu problema é como chegar man gfind
quando entro man find
- já tentei várias versões do alias
in .zshrc
, mas nenhuma funcionou.
Como faço para que isso funcione? Como faço para aparecer man gfind
na tela do meu pager quando digito man find
na linha de comando?
Se você não precisar da página de localização original - basta fazer o link de
find.1.gz
paragfind.1.gz
Melhor, seria editar a variável de ambiente MANPATH e colocar sua própria árvore (man1, man2, etc) nela com uma substituição das páginas man.
Existe uma maneira simples e geral de colocar todas as ferramentas GNU ( 'g-prefixed' ) instaladas pelo MacPorts, e seus manuais associados,
$PATH
na frente das ferramentas nativas:➤ O gerenciador de pacotes MacPorts cria (& atualiza) um diretório que contém links simbólicos para todas as ferramentas e manuais GNU instalados no MacOS; ou seja, as ferramentas "g-prefixadas" :
Existem dois (ou mais) subdiretórios que contêm os manuais. Todos os arquivos nesses diretórios são links simbólicos para as ferramentas e manuais GNU. Por exemplo:
Se verificarmos
manpath
:➤ E assim vemos que se adicionarmos
/opt/local/libexec/gnubin
a $PATH, executaremosgfind
quando ofind
comando for inserido, e visualizaremosman gfind
quando inserirmosman find
. O PATH pode ser modificado acrescentandognubin
ao PATH existente:Se você estiver satisfeito com isso, você pode adicioná-lo
export
ao seu arquivo~/.zprofile
. e você está feito. Chega de retreinar seus dedos para digitargfind
em vez defind
.➤ Você também pode personalizar isso facilmente:
Muitas das ferramentas GNU são empacotadas como um "conjunto", o que significa que
gfind
é empacotado com várias outras ferramentas no pacote Findutils - que incluiglocate
. Eu estava bem com isso até saber que há um bug teimoso que efetivamentegupdatedb
o desativa (e, portanto, torna -seglocate
inútil) - devido a algumas diferenças entre Darwin e Linux.Eu uso o nativo
locate
ocasionalmente e queria evitar perder mais tempo com a versão GNU. A "correção" para isso é paraunlink
os links simbólicos paraglocate
,gupdate
e seus manuais associados de/opt/local/libexec/gnubin
.➤ Mas há mais um problema para classificar se você "adaptar" o gnubin :
Eu aprendi que o MacPorts atualiza
/opt/local/libexec/gnubin
periodicamente , e fui informado por um dos mantenedores que essas atualizações irão "reparar" minhas modificações! Isso adiciona apenas uma etapa à solução: copie asgnubin
pastas originais para outro local; faça todas as edições (unlink
s) nesse local alternativo e use-o no PATH. Veja como fazer isso:Observe que esta é a versão BSD nativa do
cp
➤ A solução final - edite/desvincule gnubin-m e adicione ao PATH