Je veux simplement exécuter un exécutable à partir de la ligne de commande ./arm-mingw32ce-g++
, mais j'obtiens le message d'erreur,
bash: ./arm-mingw32ce-g++: No such file or directory
J'utilise Ubuntu Linux 10.10. ls -l
listes
-rwxr-xr-x 1 root root 433308 2010-10-16 21:32 arm-mingw32ce-g++
Utiliser sudo ( sudo ./arm-mingw32ce-g++
) donne
sudo: unable to execute ./arm-mingw32ce-g++: No such file or directory
Je ne sais pas pourquoi le système d'exploitation ne peut même pas voir le fichier lorsqu'il est là. Des pensées?
la source
not a dynamic executable
(avant d'installer ia32-libs).ia32-libs-*
est obsolète dans Ubuntu 16.04, installezlib32ncurses5
et à lalib32z1
place.J'ai rencontré cette erreur lorsque j'essayais de créer une source Selenium sur Ubuntu. Le script shell simple avec shebang correct n'a pas pu s'exécuter même après avoir couvert tous les pré-requis.
file file-name # helped me in understanding that CRLF ending were present in the file.
J'ai ouvert le fichier dans Vim et je pouvais voir que simplement parce que j'avais édité ce fichier sur une machine Windows, il était au format DOS. J'ai converti le fichier au format Unix avec la commande ci-dessous:
dos2unix filename # actually helped me and things were fine.
J'espère que nous devrions faire attention chaque fois que nous éditons des fichiers sur plusieurs plates-formes, nous devrions également prendre soin des formats de fichiers.
la source
Cette erreur peut également se produire si vous essayez d'exécuter un script et que le shebang est mal orthographié. Assurez-vous qu'il lit
#!/bin/sh
,#!/bin/bash
ou quel que soit l'interpréteur que vous utilisez.la source
./my/full/path/myscript
au lieu de./myscript
.J'ai eu le même message d'erreur en essayant d'exécuter un script Python - ce n'était pas le cas d'utilisation prévu de @ Warpspace (voir les autres commentaires), mais c'était parmi les meilleurs résultats de ma recherche, alors peut-être que quelqu'un le trouvera utile.
Dans mon cas, c'était les fins de ligne DOS (
\r\n
au lieu de\n
) sur lesquelles la ligne shebang (#!/usr/bin/env python
) trébucherait. Un simple l'ados2unix myfile.py
corrigé.la source
J'ai eu la même erreur pour un simple script bash qui n'aurait pas de problèmes 32/64 bits. C'est peut-être parce que le script que vous essayez d'exécuter contient une erreur. Ce message du forum ubuntu indique qu'avec des fichiers de script normaux, vous pouvez ajouter 'sh' devant et vous pourriez en obtenir une sortie de débogage. par exemple
et voyez si vous obtenez une sortie.
Dans mon cas, le problème réel était que le fichier que j'essayais d'exécuter était au format Windows plutôt que Linux.
la source
J'ai eu cette erreur
“No such file or directory”
mais elle existe car mon fichier a été créé sous Windows et j'ai essayé de l'exécuter sur Ubuntu et le fichier contenait 15 \ r invalide là où une nouvelle ligne était là. Je viens de créer un nouveau fichier tronquant des éléments indésirablessleep: 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
la source
La commande ci-dessous a fonctionné sur 16.4 Ubuntu
Ce problème survient lorsque votre fichier .sh est corrompu ou non formaté selon les protocoles Unix.
dos2unix convertit le fichier .sh au format Unix!
la source
J'ai eu le même problème avec un fichier que j'ai créé sur mon mac. Si j'essaye de l'exécuter dans un shell avec ./filename, j'ai le message d'erreur du fichier non trouvé. Je pense que quelque chose n'allait pas avec le fichier.
ce que j'ai fait:
ouvrir une session ssh sur le serveur
cat filename
copiez la sortie dans le presse-papiers
rm filename
touch filename
vi filename
i pour le mode insertion
collez le contenu du presse-papiers
ESC pour terminer le mode insertion
: wq!
Cela a fonctionné pour moi.
la source
Je viens d'avoir ce problème
mingw32 bash
. J'avais exclu node / npm deProgram Files (x86)\nodejs
puis les ai déplacés dans ledisabled
répertoire (en les supprimant essentiellement du chemin). J'avais aussiProgram Files\nodejs
(c'est-à-dire la version 64 bits) dans le chemin, mais seulement après la version x86. Après avoir redémarré le shell bash, la version 64 bits de npm a pu être trouvée.node
fonctionnait correctement tout le temps (vérifié avecnode -v
cela changé lorsque la version x86 a été déplacée).Je pense que cela
bash -r
aurait fonctionné au lieu de redémarrer bash: https://unix.stackexchange.com/a/5610la source
Comme mentionné par d'autres, c'est parce que le chargeur est introuvable, pas votre fichier exécutable. Malheureusement, le message n'est pas assez clair.
Vous pouvez le résoudre en changeant le chargeur utilisé par votre exécutable, voir ma réponse approfondie dans cette autre question: plusieurs bibliothèques glibc sur un seul hôte
En gros, vous devez trouver quel chargeur il essaie d'utiliser:
Ensuite, trouvez le bon chemin pour un chargeur équivalent, et modifiez votre exécutable pour utiliser le chargeur à partir du chemin qu'il est réellement:
Vous devrez probablement également définir le chemin des includes, vous saurez si vous le souhaitez ou non après avoir essayé de l'exécuter. Voir tous les détails dans cet autre fil.
la source
J'ai trouvé ma solution pour mon Ubuntu 18 ici .
Ensuite:
la source
J'ai eu ce problème et la raison était EOL dans certains éditeurs tels que Notepad ++. Vous pouvez le vérifier dans le menu Edition / Conversion EOL. Unix (LF) doit être sélectionné. J'espère que ce serait utile.
la source
Ajouté ici pour référence future (pour les utilisateurs qui pourraient tomber dans le même cas): Cette erreur se produit lorsque vous travaillez sous Windows (qui introduit des caractères supplémentaires en raison d'un séparateur de ligne différent de celui du système Linux) et essayez d'exécuter ce script (avec des caractères supplémentaires insérés) sous Linux. Le message d'erreur est trompeur.
Sous Windows, le séparateur de ligne est CRLF ( \ r \ n ) alors que sous Linux, c'est LF ( \ n ). Cela peut généralement être choisi dans l'éditeur de texte.
Dans mon cas, cela s'est produit en raison du travail sur Windows et du téléchargement sur le serveur Unix pour exécution.
la source
scriptdir=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
alorscd $scriptdir || exit 1
mais le\r
dans mon fichier édité par Windows a été ajouté à lascriptdir
valeur. Le message: no such file or directory
était donc très déroutant, car il a fini par effacer ce dont il se plaignait.