Ich versuche, ARM-Code in Ubuntu 12.04 zu kompilieren.
Alles funktioniert gut, wenn ich meinen Code in ein lokales Verzeichnis lege. Aber wenn ich den Code in das angegebene Mount-Verzeichnis lege, tritt folgender Fehler auf:
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
Hier ist mein Mount-Befehl:
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
Ich benutze Ubuntu 12.04 64bit
Was würde diesen Fehler verursachen?
cd [PATH]
Ihre Shell ein, um zu einer vorhandenen zu wechseln.Antworten:
Ich habe diesen Fehler mit jshint über einen Python-Unterprozess unter Ubuntu 12.10 64-Bit erhalten.
Dies liegt daran, dass Sie ein Verzeichnis darunter gelöscht oder verschoben haben und das aktuelle Verzeichnis nicht ermittelt werden kann.
So erkennen Sie, ob Sie dieses Problem haben:
Führen Sie den Befehl aus
cd .
(Wenn Sie diesen Fehler erhalten, haben Sie dieses Problem).Sie haben versucht, das Verzeichnis in Ihr aktuelles Verzeichnis zu ändern, konnten dies jedoch nicht.
So reproduzieren Sie den Fehler:
jshint ist von diesem Fehler betroffen. Machen Sie ein Verzeichnis
foo
, CD in es, machen Sie eine Datei namensmyjavascript.js
jshint läuft korrekt, es heißt, es gibt keine Fehler, die korrekt sind.
Öffnen Sie ein zweites Terminal und
rm -rf
das Verzeichnis/home/el/foo
von unten.Führen Sie das
jshint myjavascript.js
erneut von Ihrem ersten Terminal aus und Sie erhalten eine Fehlermeldung:Das Verzeichnis ist weg! Und selbst wenn Sie es durch denselben Inhalt ersetzen, hat es eine andere Signatur und das Terminal kann nicht wiederhergestellt werden. Die Methode
getcwd
kann das aktuelle Verzeichnis nicht kennen.Drei Lösungen:
Das Terminal ist verwirrt darüber, was das aktuelle Verzeichnis ist, weil es weg ist oder sich seine Signatur geändert hat. Führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
Führen Sie den Befehl aus,
cd ..
bis keine Fehler mehr angezeigt werden. Dadurch wird das Terminal erneut mit dem Dateisystem synchronisiert. Dann CD zurück in Ihr Verzeichnis. Versuch es noch einmal. Der Fehler verschwindet.Geben Sie
su youruser
im Terminal das Passwort ein. Es wird aktualisiert und bringt Sie zurück in dasselbe Verzeichnis.Schließen Sie das Terminal und öffnen Sie es erneut, wodurch die veralteten Verzeichnissignaturen entfernt werden. Oder senden Sie eine Nastymail an ein beliebiges Programm (jshint) oder an Tausende anderer Programme, die veraltete Verzeichnissignaturen nicht tolerieren oder wiederherstellen können.
quelle
cd ..
"oft genug" zu laufen , können Sie auchcd ~
direkt zu Ihrem HomefolderIch erhalte den gleichen Fehler, habe jedoch versucht, ein Skript in meinem Home-Verzeichnis auszuführen. Ich habe es gelöst mit:
pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null
Dadurch wird mein Verzeichnis in mein Ausgangsverzeichnis verschoben, dann wird pwd ausgeführt (aber Sie können alles ausführen, was Sie möchten), und das Popd verschiebt mich zurück zu meinem ursprünglichen Standort. Wenn Sie dann nicht zurück müssen
cd; pwd
Wäre genug, um mein Problem zu lösen (ich hoffe, dass es bei Ihnen hilft.)
bearbeiten Die
1>/dev/null
Teile sind optional; Ich füge sie hinzu, damit ich die obige Zeile in einem Shell-Skript ohne zusätzliche Ausgabe verwenden kann, die in diesem Fall nicht benötigt wird.quelle
Sogar ich hatte das gleiche Problem mit Python Virtualenv. Es wurde durch einen einfachen Neustart korrigiert
quelle
cd
in ein vorhandenes Verzeichnis.