Como posso executar um arquivo sem me dar permissões de execução (com chmod u+x
) para ele?
Se eu tentar marcar a caixa de seleção 'Permitir a execução de arquivo como programa', a marca de seleção será removida imediatamente.
permissions
executable
kiri
fonte
fonte
Respostas:
Verifique a propriedade do arquivo
Faça isso antes de mais nada (a menos que tenha certeza de que é o proprietário do arquivo).
Verifique e verifique se você possui o arquivo que você está tentando executar com um dos seguintes métodos.
Gráfico
Linha de comando
Execute este comando em um terminal
You don't own the file
", consulte "Alterar a propriedade do arquivo" abaixo.Alterar a propriedade do arquivo
Execute este comando em um terminal
Arquivos executáveis
Uma resposta que encontrei de um comentário de Lekensteyn sobre uma resposta para uma pergunta sobre
chmod
partições NTFS que acho que merece sua própria pergunta e resposta, crédito total para Lekensteyn.Use este comando para arquivos executáveis (substituindo
/path/to/executable
pelo caminho correto):Arquivos executáveis de 64 bits:
Arquivos executáveis de 32 bits:
Se o procedimento acima não funcionar (ou gerar erros de arquivo não encontrado), tente usá-lo antes do comando acima
Todos os comandos acima não funcionarão para scripts baseados em texto (Bash, Python, Perl, etc.), veja abaixo.
Verifique se um programa é de 64 ou 32 bits
Use este comando para descobrir se um executável tem 32 (
x86
) ou 64 (x86-64
) bitsSe diz
i386:x86-64
, então é de 64 bits. Se dizi386
apenas, então é de 32 bits.Scripts
Para scripts baseados em texto (Bash, Python, Perl, etc.), você deve usar o comando especificado na primeira
#!
linha do arquivo.Por exemplo, se a primeira linha do arquivo for
em seguida, execute esses comandos em um terminal (substituindo
/path/to/file
pelo caminho correto).jar
Arquivos JavaPara jar executáveis em Java, você pode simplesmente usar estes comandos (substituindo
/path/to/jar
pelo caminho correto):Quando você não precisa
cd "$(dirname /path/to/file)"
Estas são circunstâncias possíveis em que você não precisará usar
cd "$(dirname /path/to/file)"
antes de executar o programa com qualquer método: Se pelo menos um for verdadeiro, você não precisarácd
primeiro.apt-get
)cd
(ou equivalente) para mudar para um caminho absoluto antes de executar qualquer operação de arquivo (exemplocd "$(dirname "$0")"
:)./
ou iniciados sem barra)Se não tiver certeza, adicione
cd "$(dirname "$0")"
(ou equivalente) à parte superior do script (se aplicável) ou usecd "$(dirname /path/to/file)"
assim mesmo.fonte
Se for um script de shell, você pode "originar" de outro script de shell, ou seja:
O "$ @" acrescenta os parâmetros da linha de comando, se necessário.
Dito isto, essa provavelmente não é a melhor solução para o problema subjacente, mas não sabemos o suficiente sobre esse problema para oferecer alternativas.
fonte
bash script $@