J'essaie de compiler le code ARM dans Ubuntu 12.04.
Tout fonctionne bien lorsque je mets mon code dans le répertoire local. Mais quand je mets le code dans le répertoire cité monter cette erreur se produit:
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
Voici ma commande de montage:
sudo mount -t cifs -o username=wx,passwd=wx,auto,nounix,noserverino,file_mode=0777,dir_mode=0777,uid=user,gid=users,noperm,rw,uid=1002,gid=1002 //192.165.54.18/prj_9330 /home/dongjw/work_dir/work_9330
J'utilise Ubuntu 12.04 64 bits
Quelle serait la cause de cette erreur?
cd [PATH]
votre shell pour accéder à un shell existant.Réponses:
J'ai eu cette erreur en utilisant jshint via un sous-processus python sur Ubuntu 12.10 64 bits.
Cela est dû au fait que vous avez supprimé ou déplacé un répertoire en dessous et que le répertoire actuel ne peut pas être déterminé.
Comment savoir si vous rencontrez ce problème:
Exécutez la commande
cd .
(si vous obtenez cette erreur, vous avez ce problème).Vous avez essayé de changer de répertoire dans votre répertoire actuel et vous ne l'avez pas pu.
Comment reproduire l'erreur:
jshint est affecté par cette erreur. Créez un répertoire
foo
, cd dedans, créez un fichier appelémyjavascript.js
jshint fonctionne correctement, il indique qu'il n'y a aucune erreur qui est correcte.
Ouvrez un 2ème terminal et
rm -rf
le répertoire/home/el/foo
par en dessous.Exécutez à
jshint myjavascript.js
nouveau depuis votre premier terminal et vous obtenez une erreur:Le répertoire est parti! Et même si vous deviez le remplacer par le même contenu, il a une signature différente et le terminal ne peut pas récupérer, la méthode
getcwd
ne peut pas savoir quel est le répertoire actuel.Trois solutions:
Le terminal est confus quant à ce que le répertoire actuel est parce qu'il a disparu ou que sa signature a changé. Effectuez l'une des opérations suivantes pour le corriger:
Exécutez la commande
cd ..
jusqu'à ce que vous ne receviez plus d'erreurs. Cela re synchronise le terminal avec le système de fichiers. Revenez ensuite dans votre répertoire. Réessayer. L'erreur disparaît.Utilisez
su youruser
dans le terminal, entrez le mot de passe. Il rafraîchit et vous ramène au même répertoire.Fermez et rouvrez le terminal qui vide les signatures de répertoire périmées. Ou envoyez un nastymail à n'importe quel programme (jshint) ou aux milliers d'autres programmes qui ne peuvent pas tolérer ou récupérer des signatures de répertoire périmées.
la source
cd ..
"assez souvent", vous pouvez également accédercd ~
directement à votre dossier personnelJ'obtiens la même erreur, mais j'essayais d'exécuter un script dans mon répertoire personnel. Je l'ai résolu avec:
pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null
Cela déplace mon vers mon répertoire personnel, puis exécute pwd (mais vous pouvez exécuter tout ce que vous aimez), puis le popd me ramène là où j'étais. Si vous n'avez pas besoin de revenir en arrière,
cd; pwd
Serait suffisant pour résoudre mon problème (j'espère que cela aidera le vôtre.)
modifier Les
1>/dev/null
pièces sont facultatives; Je les ajoute pour pouvoir utiliser la ligne ci-dessus dans un script shell sans sortie supplémentaire qui n'est pas nécessaire dans ce cas.la source
Même moi, je suis le même problème avec virtualenv python. Il a été corrigé par un simple redémarrage
la source
cd
à un répertoire existant.