Obtendo 'nenhum arquivo ou diretório' mesmo que o arquivo esteja claramente lá [duplicado]

2

Estou tendo um problema desconcertante. Se eu tentar executar um script via:

root@myServer:~/dig# ./minerd.sh

Eu recebo:

-bash: ./minerd.sh: No such file or directory

Se eu tentar:

root@myServer:~/dig# ~/dig/minerd.sh

Ainda recebo:

-bash: /root/dig/minerd.sh: No such file or directory

Se eu fizer:

root@myServer:~/dig# ls ~/dig/minerd.sh

Então eu recebo:

/root/dig/minerd.sh

Então, o arquivo está claramente lá. Eu também fiz anteriormente chmod +x sobre ele. Mas ainda assim, não está me permitindo executá-lo por algum motivo. O que estou fazendo errado?

Editar: até mesmo mover o arquivo para um nome diferente não funciona:

root@myServer:~/dig# mv minerd.sh test.sh
root@myServer:~/dig# ./test.sh
-bash: ./test.sh: No such file or directory
    
por Click Upvote 27.02.2014 / 20:46

1 resposta

4

Verifique o '#!' linha, a primeira linha do arquivo. Se você tiver um erro de digitação no caminho do shell, receberá essa mensagem.

Se o '#!' linha parece bom, tente fazer xxd minderd.sh - olhar com cuidado na saída para valores de byte não-impressão. Você pode ter um "erro de digitação invisível".

EDITAR Desde que você mencionou que é um arquivo binário, que eu assumo significa um executável compilado, faça isso:

ldd minderd.sh

Isso mostrará coisas como quais bibliotecas dinâmicas o arquivo precisa e onde o vinculador dinâmico as obterá. Aposto que qualquer que seja o link dinâmico que o executável queira (que é /lib/ld-linux.so.2 baseado no seu comentário acima), não existe no seu sistema.

    
por 27.02.2014 / 20:51

Tags