Eliminación de las utilidades de línea de comandos integradas de PATH, zsh

De acuerdo, soy un usuario avanzado de Linux, es decir, me siento más a gusto cuando tengo acceso a la línea de comandos y estoy muy acostumbrado a usar GNU coreutils, así que ahora que he instalado GNU coreutils en Mac OS X usando Homebrew, ¿cómo haría para eliminar los coreutils integrados con los que viene el Mac OS X estándar?

Tenga en cuenta que estoy usando zsh, así que cuando configuro la ruta a algo, lo hago así:

path=(/usr/local/bin ~/.gem/ruby/2.0.0/bin ~/.nvm/bin ~/bin /bin $path)

quiero poder decir,

Incluya todo lo presente en la ruta actual en la nueva ruta, excluyendo estos archivos: /usr/bin/ls, /usr/bin/grep...

Respuestas (2)

Agregue lo siguiente a su ruta para reemplazar las herramientas de OS X con Homebrew Coreutils:

$(brew --prefix coreutils)/libexec/gnubin

Según la sintaxis de zsh…

path=($(brew --prefix coreutils)/libexec/gnubin $path)
¿No dice esto brew install everything from now on in 'coreutils'que eso no es realmente lo que quiero? quiero una que digainclude everything in '/usr/bin' EXCEPT for this list of files
@AlexejMagura Agregar $(brew --prefix coreutils)/libexec/gnubina su ruta existente significará que cualquier herramienta GNU reemplazará la herramienta relevante que se encuentra en /usr/bin. Si no existe en el contenedor de GNU, usará /usr/bin.
no parece funcionar Agregar eso a la ruta no hace nada, incluso si lo agrego después $path.
@AlexejMagura Agregarlo después de su ruta actual (es decir, $ PATH) definitivamente no funcionará: busca en el orden dado en su $ PATH, por lo que el contenedor GNU debe ser la primera entrada en $ PATH, o al menos antes de cualquier ubicación que está intentando anular.

Primero, no desea eliminar ninguna de las herramientas de línea de comandos que proporciona Apple a menos que desee un sistema inestable/inutilizable. Sin embargo, en la forma tradicional de Unix/Linux, puede configurar su declaración de ruta para verificar /usr/local/binprimero, por lo tanto, las utilidades instaladas allí (predeterminadas para homebrew) se usarán antes /usr/bin(o /bin). El problema restante está en los scripts de shell: debe ser explícito, ya que pueden ignorar su $PATH.