Remove duplicates in zsh $PATH
How to do it?
typeset -aU path
There ya go. All entries in $PATH
are now unique
How does it work? Well that's stickier. path
and PATH
are not the same thing. You can determine that by examining the type of each with t
variable expansion.
> echo ${(t)path}
array-unique-special
> echo ${(t)PATH}
scalar-export-special
They are linked variables however, if you change one you change the other but
they have different properties. I have to admit at this point that
scalar-export-special
is something of which I'm ignorant.
The typeset
declaration is simpler, it changes the type of path
from
array-special
to array-unique-special
. The -a flag is for array and the -U
flag is for unique.