É um link simbólico , que também é indicado pelo l
na primeira coluna. Este é um caso comum, onde o nome simples de algo está ligado à "coisa real" com um número de versão exato. Todos os seus scripts e comandos podem se referir simplesmente a /opt/lampp/bin/phpize
. Quando a versão 5.5.16 ou 5.6 está instalada, você só precisa alterar o link (ou o instalador faz isso para você).
"Não é um diretório": como você mencionou, o asterisco indica que são executáveis, e não diretórios. A coisa que geralmente acrescenta um asterisco para executáveis coloca uma barra /
para diretórios. Então, cd
não é aplicável.
Seu problema ao executar um executável no diretório atual é comum . A versão curta é que se você especificar apenas um nome, o shell irá pesquisar seu PATH . É prática comum e recomendada que o seu diretório atual não esteja em seu PATH . Então, o que todo mundo faz é simplesmente especificar o diretório atual: ./phpize
Alternativas são para especificar o caminho todo, como eu fiz acima. Isso obviamente funcionará, não importa qual seja o diretório atual. Ou você pode adicionar este diretório ao seu PATH. Se você tem muitos diretórios com apenas um ou dois executáveis que você usa com freqüência, isso pode ficar pesado. Portanto, outro uso de links simbólicos é criar links para esses executáveis espalhados (vincular ao nome curto sem versão - links podem ser aninhados) e colocar todos esses novos links em um único diretório que você adiciona ao seu PATH. Portanto, agora, quando você digita apenas o nome, o shell com a pesquisa do PATH, localiza o link secundário, que pula para o link principal, localiza o executável exato e o executa.