Eu simplesmente quero executar um executável da linha de comando ./arm-mingw32ce-g++
, mas recebo a mensagem de erro,
bash: ./arm-mingw32ce-g++: No such file or directory
Estou executando o Ubuntu Linux 10.10. ls -l
listas
-rwxr-xr-x 1 root root 433308 2010-10-16 21:32 arm-mingw32ce-g++
Usar sudo ( sudo ./arm-mingw32ce-g++
) dá
sudo: unable to execute ./arm-mingw32ce-g++: No such file or directory
Não tenho ideia de por que o sistema operacional nem consegue ver o arquivo quando ele está lá. Alguma ideia?
fonte
not a dynamic executable
(antes de instalar o ia32-libs).ia32-libs-*
está obsoleto no Ubuntu 16.04, instalelib32ncurses5
e em seulib32z1
lugar.Eu enfrentei esse erro quando estava tentando construir o código-fonte Selenium no Ubuntu. O script de shell simples com o shebang correto não foi capaz de ser executado mesmo depois de eu ter atendido todos os pré-requisitos.
file file-name # helped me in understanding that CRLF ending were present in the file.
Abri o arquivo no Vim e pude ver que só porque uma vez editei esse arquivo em uma máquina Windows, ele estava no formato DOS. Converti o arquivo para o formato Unix com o comando abaixo:
dos2unix filename # actually helped me and things were fine.
Espero que tenhamos cuidado sempre que editarmos arquivos em plataformas, devemos tomar cuidado com os formatos de arquivo também.
fonte
Este erro também pode ocorrer se tentar executar um script e o shebang estiver incorreto. Certifique-se de que lê
#!/bin/sh
,#!/bin/bash
ou o intérprete que você está usando.fonte
./my/full/path/myscript
vez de./myscript
.Eu recebi a mesma mensagem de erro ao tentar executar um script Python - este não era o caso de uso pretendido do @Warpspace (veja outros comentários), mas estava entre os principais resultados da minha pesquisa, então talvez alguém ache útil.
No meu caso, eram as terminações de linha DOS (em
\r\n
vez de\n
) que a linha shebang (#!/usr/bin/env python
) tropeçava . Um simplesdos2unix myfile.py
consertou.fonte
Recebi o mesmo erro para um script bash simples que não teria problemas de 32/64 bits. Isso ocorre possivelmente porque o script que você está tentando executar contém um erro. Esta postagem no fórum do Ubuntu indica que, com arquivos de script normais, você pode adicionar 'sh' na frente e pode obter alguma saída de depuração dele. por exemplo
e veja se você consegue alguma saída.
No meu caso, o problema real era que o arquivo que eu estava tentando executar estava no formato Windows em vez de Linux.
fonte
Recebi este erro,
“No such file or directory”
mas ele existe porque meu arquivo foi criado no Windows e tentei executá-lo no Ubuntu e o arquivo continha 15 \ r inválido onde sempre havia uma nova linha. Acabei de criar um novo arquivo truncando coisas indesejadassleep: invalid time interval ‘15\r’ Try 'sleep --help' for more information. script.sh: 5: script.sh: /opt/ag/cont: not found script.sh: 6: script.sh: /opt/ag/cont: not found root@Ubuntu14:/home/abc12/Desktop# vi script.sh root@Ubuntu14:/home/abc12/Desktop# od -c script.sh 0000000 # ! / u s r / b i n / e n v b 0000020 a s h \r \n w g e t h t t p : / 0000400 : 4 1 2 0 / \r \n 0000410 root@Ubuntu14:/home/abc12/Desktop# tr -d \\015 < script.sh > script.sh.fixed root@Ubuntu14:/home/abc12/Desktop# od -c script.sh.fixed 0000000 # ! / u s r / b i n / e n v b 0000020 a s h \n w g e t h t t p : / / 0000400 / \n 0000402 root@Ubuntu14:/home/abc12/Desktop# sh -x script.sh.fixed
fonte
O comando abaixo funcionou em 16.4 Ubuntu
Este problema surge quando o seu arquivo .sh está corrompido ou não formatado de acordo com os protocolos Unix.
dos2unix converte o arquivo .sh para o formato Unix!
fonte
Eu tive o mesmo problema com um arquivo que criei no meu mac. Se eu tentar executá-lo em um shell com ./filename, recebo a mensagem de erro arquivo não encontrado. Acho que algo estava errado com o arquivo.
o que eu fiz:
abrir uma sessão ssh para o servidor
cat nome do arquivo
copiar a saída para a área de transferência
rm nome do arquivo
toque nome do arquivo
vi nome do arquivo
i para o modo de inserção
cole o conteúdo da área de transferência
ESC para encerrar o modo de inserção
: wq!
Isso funcionou para mim.
fonte
Acabei de ter esse problema em
mingw32 bash
. Eu tinha executado node / npm deProgram Files (x86)\nodejs
e, em seguida, movido para odisabled
diretório (essencialmente removendo-os do caminho). Eu também tinhaProgram Files\nodejs
(ou seja, versão de 64 bits) no caminho, mas apenas após a versão x86. Depois de reiniciar o shell bash, a versão de 64 bits do npm pode ser encontrada.node
funcionou corretamente o tempo todo (verificado comnode -v
a mudança quando a versão x86 foi movida).Acho que
bash -r
teria funcionado em vez de reiniciar o bash: https://unix.stackexchange.com/a/5610fonte
Conforme mencionado por outros, isso ocorre porque o carregador não pode ser encontrado, e não o seu arquivo executável. Infelizmente, a mensagem não é suficientemente clara.
Você pode consertar alterando o carregador que seu executável usa, veja minha resposta completa nesta outra pergunta: Várias bibliotecas glibc em um único host
Basicamente, você deve encontrar qual carregador ele está tentando usar:
Em seguida, encontre o caminho certo para um carregador equivalente e altere seu executável para usar o carregador do caminho que ele realmente é:
Você provavelmente precisará definir o caminho dos includes também, você saberá se deseja ou não depois de tentar executá-lo. Veja todos os detalhes nesse outro tópico.
fonte
Eu encontrei minha solução para meu Ubuntu 18 aqui .
Então:
fonte
Eu tive esse problema e o motivo era EOL em alguns editores como o Notepad ++. Você pode verificar isso no menu Editar / conversão EOL. Unix (LF) deve ser selecionado. Espero que seja útil.
fonte
Adicionado aqui para referência futura (para usuários que podem cair no mesmo caso): Este erro ocorre ao trabalhar no Windows (que introduz caracteres extras devido ao separador de linha diferente do sistema Linux) e ao tentar executar este script (com caracteres extras inseridos) no Linux. A mensagem de erro é enganosa.
No Windows, o separador de linha é CRLF ( \ r \ n ), enquanto no Linux é LF ( \ n ). Isso geralmente pode ser escolhido no editor de texto.
No meu caso, isso aconteceu devido a trabalhar no Windows e fazer o upload para o servidor Unix para execução.
fonte
scriptdir=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
então,cd $scriptdir || exit 1
mas\r
no arquivo editado no meu Windows foi anexado aoscriptdir
valor. Então a mensagem: no such file or directory
ficou mais confusa, pois acabou apagando o que estava reclamando.Acerte este erro ao tentar executar o terraform / terragrunt (binário único go).
Usando
which terragrunt
para encontrar onde estava o executável, obteve um erro estranho ao executá-lo no diretório local ou com o caminho completoO problema era que havia duas instalações do terragrunt, usado
brew uninstall terragrunt
para remover um corrigido.Depois de retirar o um,
which terragrunt
mostrou o novo caminho/usr/bin/terragrunt
tudo funcionou bem.fonte