Bash - Não existe tal arquivo, mas o arquivo existe

2

Eu instalei recentemente um servidor headless Debian Jessie amd64 (usando uma das netinstalls). O servidor está em execução e o sistema está funcionando como esperado.
Mas então eu compilei um .cgi (escrito em C ++). A compilação (usando g++ 4.9.2 ) correu bem, mas assim que eu tento executar o arquivo de bash ele diz No such file or directory .
Ao ler outras mensagens sobre esse erro, tentei utilizar o comando file , ldd e até mesmo o cat , mas todos dizem que não conseguem encontrar esse arquivo.
ls -l mostra o arquivo com 755 permissão como esperado.
Mas a conclusão do bash não faz nada, não completa automaticamente o caminho.

Mas agora fica interessante:
Usando midnight commander eu posso ler, editar e executar com sucesso o binário e apache lista o índice completo do diretório, incluindo .cgi , e até me permite baixá-lo.

O que está acontecendo?
Desde que eu pude executá-lo a partir de mc eu não suponho que seja sobre o próprio executável.
A festa poderia ser corrompida?
Agradecemos antecipadamente por qualquer insight!

    
por Mäx Müller 06.10.2015 / 11:03

2 respostas

0

Você pode procurar por esse arquivo no diretório e hexdump todos os nomes de arquivos como este:

find . -exec sh -c 'echo -n "$1" | xxd' _ {} \;

Imprime (por exemplo):

0000000: 2e2f 696e 6465 782e 6367 69              ./index.cgi
0000000: 2e2f 696e 6465 782e 6367 690a            ./index.cgi.

A segunda linha index.cgi tem uma nova linha no final ( 0a ). Você pode ver como o nome do arquivo está e compará-lo com a primeira linha na saída do meu exemplo. Se tudo estiver correto, o nome do arquivo deve ser exatamente como na primeira linha.

    
por 06.10.2015 / 14:12
0

Use o comando updatedb . Isto irá atualizar seu banco de dados de diretório. Consulte a referência para obter mais informações updatedb Docs

    
por 08.10.2015 / 13:51