Variável PATH do sistema duplicada (snap/bin:/snap/bin)

Variável PATH do sistema duplicada (snap/bin:/snap/bin)

Quando executo echo $PATHa saída duplicadasnap/bin:/snap/binaparece no final e parece incomum.

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

Essa duplicação é indesejada? Se sim, como isso pode ser mudado?

Responder1

Provavelmente no seu ~/.bashrcou no seu ~/.profileexiste um comando que adiciona /snap/binao $PATHsem verificar previamente se ainda está no $PATH.

Considere que entradas duplicadas na $PATHvariável não têm nenhum impacto quando você executa um comando que está no seu arquivo $PATH. A lentidão pode estar presente, por outro lado, quando você executa um comando que não está $PATH(porque a busca do comando é realizada, inutilmente, duas ou mais vezes quando há entradas duplicadas), embora eu ache difícil perceber essa lentidão. Entradas duplicadas também são um pouco irritantes quando você deseja verificar visualmente sua $PATHvariável.

Se você quiser evitar entradas duplicadas no seu arquivo $PATH, você pode adicionar este comando no seu ~/.profilearquivo (isto éa melhor localização para variáveis ​​ambientais):

# remove duplicated paths in PATH variable
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"

Este comando serve awkpara identificar cada item da $PATHvariável (eles são separados por meio do :caractere) e reconstruir a $PATHvariável evitando adicionar novamente pastas duplicadas. Também preserva a classificação original das pastas dentro da $PATHvariável.

Você pode abrir ~/.profilecom seu editor de texto preferido. Se você abrir pelo terminal, não precisa sudoporque ele pertence ao seu usuário.

informação relacionada