Contexto: estou tentando fazer um aplicativo iniciar automaticamente quando faço login. Para isso, preciso selecionar o path
para o aplicativo.
Aqui estão os caminhos que eu já procurei:
/sbin
/usr/sbin
/usr/local/bin
/usr/share/
Se isso puder ajudar, o aplicativo que estou tentando encontrar se chama " ScreenCloud " e o baixei do Ubuntu Software Center.
Mas não consigo encontrá-lo. Existe alguma maneira de saber onde está instalado um software específico? Porque, mesmo que eu encontrasse, gostaria de evitar o mesmo problema no futuro.
.deb
pacote, mas você precisa adicionar o PPA.screencloud.sh
parascreencloud
e suspeitava que foi movido/opt
. Essa parte da minha resposta estava apontando comotype
ewhich
não encontraria,screencloud
mas encontrarialocate
.screencloud.sh
na verdade, ainda existe, mas não tenho certeza de como ele difere,screencloud
exceto pelo fato de o.sh
arquivo ser um script escreencloud
não. Eu realmente não estou familiarizado com esta aplicação. Abaixo,/usr/bin/
há ascreencloud
, ascreencloud.sh
e também ascreencloud-
seguido pelo número da versão, comogimp
é o caso.Respostas:
Encontre o caminho de um executável
Melhor maneira
type executable
Confira esta pergunta para saber mais sobre como
type
é melhor. (Obrigado, comentários!)Outras maneiras
whereis executable
which executable
Esses comandos pesquisam apenas a variável PATH (
echo $PATH
), portanto, não são válidos em alguns casos (funções internas, aliases ou funções bash e muito mais).fonte
type
é preferívelwhich
, pois é um shell embutido e pode determinar se um comando é um alias. Isso também era novo para mim!type
é preferível: Por que não usar "what"? O que usar então?which
é realmente útil no contexto específico de scripts de shell. Fora desse contexto, no entanto,type
quase sempre é a melhor escolha.Encontre o local do comando dentro ou fora do caminho
Suponha que você queira encontrar a localização de
uname
um programa que lista as informações do sistema. Se você deseja saber em qual diretório o comando de nível superior está armazenado, você tem várias opções:Localize vantagens
A última opção
locate
retorna todos os arquivos queuname
não contêm apenas o programa executado no prompt de comando.A vantagem
locate
é que ele encontrará comandos que não estão no seu caminho de pesquisa.type -a
(preferível a simplestype
) ewhich
encontrará apenas comandos no seu caminho de pesquisa. Para ver seu caminho de pesquisa, useecho $PATH
.Tomemos, por exemplo, esta resposta em Como iniciar o screencloud? :
O
locate screencloud
comando irá encontrá-lo, maswhich screencloud
etype -a screencloud
não vai, porque:screencloud.sh
e somente olocate
comando pesquisa em correspondência parcial./opt/screencloud
provavelmente não está no caminho de pesquisa.which
etype
procure apenas arquivos executáveis no caminho de pesquisa.Nota: Esta é uma resposta mais antiga. O ScreenCloud moderno é chamado com
screencloud
.A vantagem do Locate sobre o
find
comando é que ele pode ser centenas ou até milhares de vezes mais rápido. A execução afind
partir de/
também dará muitos erros de permissão com os quais você não experimentarálocate
.Localize desvantagens
Se você acabou de instalar o programa hoje, precisará
sudo updatedb
atualizá-lo.fonte
Use o seguinte comando para listar todos os seus
$PATH
diretórios:Use o seguinte comando para encontrar o caminho completo para
screencloud
:Se você usou
apt
,apt-get
ou o Ubuntu Software Center para instalar o pacote, pode usar o seguinte comando para encontrar o caminho completo:Supondo que você tenha usado este repositório , você poderá encontrá
screencloud
-lo/usr/bin/
.O caminho completo é:
ou
No entanto, se você usasse a loja snapcraft de acordo com o link fornecido na sua pergunta, o caminho estaria no seguinte diretório:
mais informações
Além disso, lembre-se de que o Ubuntu diferencia maiúsculas de minúsculas, portanto você deve usar todas as letras minúsculas sem letras maiúsculas.
fonte
/snap/bin
!