sh: 0: getcwd () falló: no existe tal archivo o directorio en la unidad citada

213

Estoy tratando de compilar código ARM en Ubuntu 12.

Todo funciona bien cuando pongo el código en el directorio local.

Pero cuando pongo el código en el error de directorio de montaje citado aparece:

making testXmlFiles
sh: 0: getcwd() failed: No such file or directory
ARM Compiling xxxxx.c
sh: 0: getcwd() failed: No such file or directory

Aquí está mi configuración en fstab

//10.0.0.1/data /mnt/data   cifs    auto,noserverino,credentials=/root/.smbcredentials,file_mode=0777,dir_mode=0777,uid=user,gid=users,noperm 0 0

¿Que esta pasando aqui? ¿Qué podría causar este error?

CrazyKitty Rotoshi
fuente
Estoy intentando en Ubuntu 10.10 funciona bien con la misma configuración.
CrazyKitty Rotoshi
50
Este mensaje de error puede activarse al intentar ejecutar un comando desde una ruta que no existe (por ejemplo, si el proceso B elimina una carpeta en la que se encuentra actualmente el proceso A). Un ejemplo de la vida real: en la terminal A: mkdir ~/myfunnydir && cd ~/myfunnydiren la terminal B: rm -rf ~/myfunnydiry finalmente de vuelta en un terminal nuevo: java --version)
dbm
Su directorio se monta automáticamente pero las credenciales se almacenan en /root. Un usuario normal no podrá montarlo porque la credencial no será legible para ellos. Intenta hacerlo como montaje no automático y deja que el root lo monte.
Invita el

Respuestas:

566

Este error generalmente es causado al ejecutar un comando desde un directorio que ya no existe.

Intente cambiar su directorio y vuelva a ejecutar el comando.

Hooman
fuente
44
getcwdobtiene el directorio de trabajo actual y si el directorio se elimina o se mueve, ¡será infeliz! Consulte el Manual de Linux para getcwd
Hooman
2
Incluso puede que tenga que hacer esto si eliminó el directorio en el que se encontraba y recreó uno en el mismo lugar con el mismo nombre.
Jackson
¡exactamente cierto! ¡bonito!
farhad goodarzi
1
todo lo que hice fue presionar cd y volver a ejecutar el comando, y funcionó, ¡gracias!
FreeSoftwareServers
Me di cuenta de esto cuando ejecuté apt-get upgrade desde un directorio inexistente. El mensaje se esparce unas 20 veces y luego la actualización continúa como si nada hubiera pasado. Esperaba encontrar más información sobre por qué apt-get incluso se preocupa en qué carpeta estoy, especialmente tan insistentemente con tan poca consecuencia.
Darren Ringer
12

Pruebe el siguiente comando, funcionó para mí.

cd; cd -
Timxor
fuente
¿Qué es esto? ¿Qué significa?
dılo sürücü
cd;generalmente lo llevará al directorio de inicio y lo cd -llevará de regreso al directorio en el que estaba justo antes del directorio actual. Así que básicamente vas al directorio de inicio y vuelves. Sin embargo, si se elimina el directorio original en el que estaba, esto no funcionará.
Hooman
8

Eso también me sucedió en un directorio recreado, el directorio es el mismo, pero para que funcione nuevamente simplemente ejecute:

cd .
Roberto Rodriguez
fuente
6

Esto puede suceder con enlaces simbólicos a veces. Si experimenta este problema y sabe que está en un directorio existente, pero su enlace simbólico puede haber cambiado, puede usar este comando:

cd $(pwd)
smcjones
fuente
4

En Ubuntu 16.04.3 LTS, el siguiente comando funciona para mí:

exit

Luego he vuelto a iniciar sesión.

Es ma
fuente
2
en realidad sería suficiente cambiar a un directorio existente como Hooman ya dijo en su respuesta
derHugo
2

Compruebe la ruta del directorio si existe o no. Este error aparece si la carpeta no existe desde donde está ejecutando el comando. Probablemente haya ejecutado un comando de eliminación desde la misma ruta en la línea de comandos.

Aritrik
fuente
1
Eso es lo que Hooman ya dijo en su respuesta
derHugo
0

En mi caso, nada de lo anterior ha funcionado. Después de golpearme la cabeza contra la pared por un tiempo, descubrí que había destruido el/etc/passwd entradas ejecutando un script personalizado-linux-server-setup-bash-script que funcionaba bien anteriormente, pero esta vez la expresión regular dentro el comando "sed" borró todas las entradas existentes: D Después de copiar y pegar las entradas predeterminadas de otro servidor Linux en funcionamiento, finalmente pude reiniciar sshd.

Así que no olvide hacer una copia de seguridad del /etc/passwdarchivo original antes de aplicar cualquier reemplazo de expresiones regulares en él :)

Nómada de la tecnología
fuente
-8

Incluso estaba teniendo el mismo problema con python virtualenv Se corrigió con un simple reinicio

sudo shutdown -r now
Yunus
fuente
44
en realidad sería suficiente cambiar a un directorio existente como Hooman ya dijo en su respuesta hace mucho tiempo ...
derHugo