Estoy tratando de compilar el código ARM en Ubuntu 12.04.
Todo funciona bien cuando pongo mi código en el directorio local. Pero cuando pongo el código en el directorio de montaje citado, ocurre este error:
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
Aquí está mi comando de montaje:
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
Estoy usando Ubuntu 12.04 64bit
¿Qué causaría este error?
cd [PATH]
su shell para ir a uno existente.Respuestas:
Recibí este error usando jshint a través de un subproceso de python en Ubuntu 12.10 de 64 bits.
Se debe a que eliminó o movió un directorio de debajo y no se puede determinar el directorio actual.
Cómo saber si tiene este problema:
Ejecute el comando
cd .
(si obtiene este error, entonces tiene este problema).Intentó cambiar el directorio a su directorio actual y no pudo.
Cómo reproducir el error:
jshint se ve afectado por este error. Crea un directorio
foo
, cd en él, crea un archivo llamadomyjavascript.js
jshint se ejecuta correctamente, dice que no hay errores, lo cual es correcto.
Abra una segunda terminal y
rm -rf
el directorio/home/el/foo
salga por debajo.Ejecute
jshint myjavascript.js
nuevamente desde su primer terminal y obtendrá un error:¡El directorio se ha ido! E incluso si tuviera que reemplazarlo con el mismo contenido, tiene una firma diferente y el terminal no se puede recuperar, el método
getcwd
no puede saber cuál es el directorio actual.Tres soluciones:
El terminal está confundido acerca de cuál es el directorio actual porque ha desaparecido o su firma ha cambiado. Realice uno de estos para solucionarlo:
Ejecute el comando
cd ..
hasta que deje de recibir errores. Esto vuelve a sincronizar el terminal con el sistema de archivos. Luego cd de nuevo en su directorio. Inténtalo de nuevo. El error desaparece.Use
su youruser
en la terminal, ingrese la contraseña. Se actualiza y vuelve al mismo directorio.Cierre y vuelva a abrir el terminal que elimina las firmas del directorio obsoleto. O envíe un correo desagradable a cualquier programa (jshint) o a los miles de otros programas que no pueden tolerar o recuperarse de firmas de directorio obsoletas.
fuente
cd ..
"con la suficiente frecuencia", también podríacd ~
directamente a su carpeta de inicioMe sale el mismo error, pero estaba tratando de ejecutar un script en mi directorio de inicio. Lo resolví con:
pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null
Esto mueve mi a mi directorio de inicio, luego ejecuta pwd (pero puedes ejecutar lo que quieras) y luego el popd me mueve de regreso a donde estaba. Si no necesitas moverte hacia atrás entonces
cd; pwd
Sería suficiente para resolver mi problema (espero que ayude con el tuyo).
editar Las
1>/dev/null
partes son opcionales; Los agrego para que pueda usar la línea anterior dentro de un script de shell sin salida adicional que no es necesaria en este caso.fuente
Incluso estaba teniendo el mismo problema con python virtualenv. Se corrigió con un simple reinicio
fuente
cd
a un directorio existente.