Qual é a diferença entre 'command' e './command'?

3

Descobri que em algum momento eu uso o command para executar um comando, mas às vezes eu uso o ./command para executar outro comando.

Qual é a diferença?

    
por hguser 03.04.2013 / 05:27

2 respostas

10

A execução de xx pesquisa os diretórios listados na variável de ambiente PATH para um arquivo chamado xx . O primeiro executável encontrado (seja um binário ou um script) é executado. Ele não procura no diretório atual, a menos que . esteja listado em PATH , o que é não recomendado.

A execução de ./xx executa o arquivo chamado xx que está localizado no diretório atual, se houver um arquivo executável com esse nome.

Para executar um arquivo especificando seu local , você deve incluir um símbolo / . Se não houver / no comando (na verdade, a primeira palavra do comando, que é o que identifica o nome do arquivo a ser executado), ele procura PATH por ele. Se houver um / , a primeira palavra do comando será usada para se referir a um arquivo específico por localização.

Assim, ./xx é diferente de xx devido ao / que contém.

É claro que /xx não funcionaria corretamente - tentaria executar um arquivo chamado xx localizado no diretório raiz, / . Como . representa o diretório atual, ./xx runs xx there.

    
por Eliah Kagan 03.04.2013 / 05:35
0

RESPONDENDO EM MENOR PALAVRAS:

No prompt do Shell, podemos executar comandos ... O comando nada mais é do que o nome do arquivo executável mantido em um diretório específico, como: bin, sbin ... Podemos chamar arquivos executáveis sem especificar o nome da extensão.

user@comp~# command

Quando entramos no comando, o arquivo é executado em um diretório específico.

user@comp~# ./command

Nesse caso de usar ./command , estamos chamando o arquivo executável que é mantido no caminho de prompt atual (Diretório de trabalho presente). Você pode conhecer seu diretório de trabalho atual do shell com o comando pwd .

    
por Rahul Raina 20.11.2015 / 10:14