Por que não há / usr / bin no Windows?

5

Eu sou um usuário de Linux que passa algum tempo no Windows e estou tentando entender alguns dos paradigmas do Windows, em vez de combatê-los. Eu noto que cada programa instalado da maneira tradicional adiciona os executáveis a

C:\Program Files

e, em seguida, adiciona um atalho ao Desktop / Menu Iniciar contendo o caminho inteiro. No entanto, não existe um diretório comum com links para o software, ou seja, C:\bin\bar.exe que ligaria para

C:\Program Files\foo\bar.exe

Portanto, depois de instalar um aplicativo, a única maneira de usar o aplicativo é através dos menus ou navegando para o executável no sistema de arquivos. 1 Não é possível simplesmente Win-R abrir o diálogo de execução e digitar bar ou bar.exe como é possível com notepad ou mspaint . Eu percebo que o Windows 8 melhora isso com a tela inicial de outra forma horrível que suporta a digitação do nome do aplicativo, mas novamente isso depende do aplicativo ter se registrado para tal.

Eu estaria fazendo mal ao adicionar C:\Program Files recursivamente ao Caminho do Windows? Eu sei que haverá colisões de nomes (ou seja, uninstall.exe) mas poderia haver outros problemas?

    
por dotancohen 13.11.2013 / 10:30

2 respostas

6

Normalmente, não deve haver problemas. No entanto, você precisa estar atento a duas coisas:

  • Evite colisões de nomes. Em particular, certifique-se de que os componentes padrão do caminho (como C:\windows etc.) vêm em primeiro lugar, portanto, nenhum utilitário do sistema está oculto no caminho.
  • A variável PATH não pode conter mais de 8191 caracteres . Portanto, se você tiver muitas pastas de programa que deseja adicionar, talvez seja necessário escolher. Se você assumir um comprimento médio de caminho de 50 caracteres por programa, isso dará espaço para cerca de 160 programas no PATH.

A razão pela qual isso não é feito por padrão é provavelmente simplesmente que a linha de comando é usada relativamente raramente no Windows, então nunca houve uma necessidade urgente de ter tudo no caminho. A maioria dos programas que precisam invocar outros programas se adaptaram a isso e usam o caminho completo para invocações.

Finalmente, se você gostaria de trabalhar muito na linha de comando, como no Linux, eu recomendo que você instale o Cygwin . Ele fornece um ambiente semelhante ao Linux no Windows e permite que você trabalhe na linha de comando. Ele também mantém sua própria variável PATH , que você pode personalizar sem afetar outros aplicativos do Windows.

    
por 13.11.2013 / 11:12
0

A resposta para isso depende do tipo de programa que você está falando. Se vocês estão falando sobre programas que usam bibliotecas compartilhadas (DLLs):

C:\Program Files

é o lugar correto para eles. Você não pode colocar os arquivos para esses programas em a mesma pasta, porque eles provavelmente terão colisões de nomes . Se vocês estão falando sobre programas que usam bibliotecas estáticas (sem DLLs):

C:\ProgramData\Bin

é o lugar correto para eles. Isso é semelhante a:

/usr/local/bin

no Linux. Este diretório está disponível por meio de uma variável de pasta :

ProgramData=C:\ProgramData

Se você precisar de programas com bibliotecas compartilhadas em seu caminho, você pode link simbólico deles:

mklink C:\ProgramData\Bin\alfa.exe "C:\Program Files\Alfa\alfa.exe"
    
por 29.11.2016 / 02:36