Por partes
Sim, você está chamando eles pela pasta atual, ./ significa “diretório atual”, equivale a chamar:
${PWD}/programa
PWD vem de Print Working Directory, ou em tradução livre, Mostre o Diretório de Trabalho, o diretório de trabalho é a pasta atual
Mas veja o que acontece se a gente colocar um echo
(que imprime o texto passado):
$ echo "${PWD}/programa"
/pasta/onde/eu/estou/programa
Nem só lá, na verdade eles podem estar em qualquer pasta que esteja no PATH
, o PATH
(caminho em inglês) diz pro sistema onde procurar por executáveis quando você der o comando, /usr/bin
está no PATH
por isso, se o firefox
estiver em /usr/bin
(ou outra pasta que esteja no PATH
) você não precisa digitar a pasta, pra ver onde o sistema procura executável, você pode usar:
echo ${PATH} | tr ':' '\n'
Se você colocar em qualquer pasta mostrada da lista da linha de comando acima você pode chamar de qualquer lugar, então de certa forma é isso… mas tem um porém:
A menos que você esteja trabalhando com AppImages copiar (ou mover) os arquivos pra lá não vai funcionar
Os programas (tanto Linux quanto Windows) dependem de arquivos pra funcionar, sendo assim pra mover o programa pra uma pasta no PATH
você deve mover todo o conteúdo da pasta do programa… mas isso como você deve imaginar vai tornar o seu sistema um pandemônio… e criar um link vai fazer o programa pensar que foi chamado de outra pasta… então qual a solução você pode perguntar…
Então, lembra que eu disse que os programas são chamados a partir de pastas da variável PATH
? Então, basta fazer o inverso, adicione a pasta do programa ao PATH
, a lógica é simples, nós exportamos a variável (comando export
) PATH
contendo ela mesma, o sinal :
e a pasta onde o programa está (que é a pasta que a gente viu lá no começo), assim sendo
- Primeiro a gente vê a pasta onde o programa está
Pra isso entre na pasta onde você chama o programa usando ./
e execute:
echo ${PWD}
E guarde essa pasta, para fins de exemplo, vamos dizer que a saída foi:
/home/natanal/AppImages
- Agora execute essa linha:
echo 'export PATH="${PATH}:<caminho encontrado no passo 1>"' >> ~/.profile
No exemplo:
echo 'export PATH="${PATH}:/home/natanal/AppImages"' >> ~/.profile
Agora é só fazer logout e login novamente pra poder chamar o programa de qualquer lugar