sh: 0: getcwd () non riuscito: nessun file o directory sull'unità citata


213

Sto cercando di compilare il codice ARM in Ubuntu 12.

Tutto funziona bene quando inserisco il codice nella directory locale.

Ma quando inserisco il codice nella citata errore di directory di montaggio viene visualizzato:

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

Ecco la mia impostazione in 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

Che cosa sta succedendo qui? Cosa potrebbe causare questo errore?


Sto provando in Ubuntu 10.10 funziona benissimo con la stessa configurazione.
CrazyKitty Rotoshi,

50
Questo messaggio di errore potrebbe essere attivato quando si tenta di eseguire un comando da un percorso che non esiste (ad es. Se il processo B elimina una cartella in cui si trova attualmente il processo A. Un esempio reale: nel terminale A: mkdir ~/myfunnydir && cd ~/myfunnydirnel terminale B: rm -rf ~/myfunnydired infine di nuovo in un terminale ancora: java --version)
dbm

La tua directory viene montata automaticamente ma le credenziali sono archiviate /root. Un utente normale non sarà in grado di montarlo perché le credenziali non saranno leggibili per loro. Prova a renderlo come montaggio non automatico e lascia che root lo monti.
attende il

Risposte:


565

Questo errore è in genere causato dall'esecuzione di un comando da una directory che non esiste più.

Prova a cambiare la directory ed esegui nuovamente il comando.


4
getcwdottiene la directory di lavoro corrente e se la directory viene eliminata o spostata sarà infelice! Vedi Manuale Linux per getcwd
Hooman

2
Potrebbe anche essere necessario farlo se hai eliminato la directory in cui ti trovavi e ne hai ricreato uno nello stesso posto con lo stesso nome.
Jackson,

esattamente vero! simpatico!
Farhad Goodarzi,

1
tutto ciò che ho fatto è stato colpire cd e rieseguire il comando, e ha funzionato, grazie!
FreeSoftwareServers dal

L'ho notato da solo quando eseguivo apt-get upgrade da una directory inesistente. Il messaggio viene inviato circa 20 volte, quindi l'aggiornamento continua come se non fosse successo nulla. Speravo di trovare maggiori informazioni sul perché apt-get si preoccupi persino della cartella in cui mi trovo, specialmente con tanta insistenza e così poche conseguenze.
Darren Ringer,

12

Prova il seguente comando, ha funzionato per me.

cd; cd -

che cos'è questo?
dılo sürücü

cd;ti porta di solito nella home directory e cd -ti riporta nella directory in cui ti trovavi poco prima della directory corrente. Quindi sostanzialmente vai alla home directory e torni. Tuttavia, se la directory originale in cui ti trovavi viene eliminata, questo non funzionerà.
Hooman,

8

Ciò è accaduto anche a me in una directory ricreata, la directory è la stessa ma per farlo funzionare di nuovo basta eseguire:

cd .

6

Questo può accadere con i collegamenti simbolici a volte. Se riscontri questo problema e sai di trovarti in una directory esistente, ma il tuo link simbolico potrebbe essere cambiato, puoi usare questo comando:

cd $(pwd)

4

In Ubuntu 16.04.3 LTS, il comando successivo funziona per me:

exit

Quindi eseguo nuovamente l'accesso.


2
in realtà basterebbe passare a una directory esistente come Hooman ha già detto nella sua risposta
derHugo

2

Controllare il percorso della directory se esiste o no. Questo errore viene visualizzato se la cartella non esiste da dove si sta eseguendo il comando. Probabilmente hai eseguito un comando di rimozione dallo stesso percorso nella riga di comando.


1
Questo è ciò che Hooman ha già detto nella sua risposta
derHugo

0

Nel mio caso niente sopra ha funzionato. Dopo aver sbattuto la testa contro il muro per un po 'ho scoperto che ho distrutto le /etc/passwdvoci eseguendo uno script-made-linux-server-setup-bash-script che funzionava bene in precedenza, ma questa volta il regex all'interno il comando "sed" ha cancellato tutte le voci esistenti: D Dopo aver incollato le voci predefinite da un altro server Linux funzionante, ho finalmente potuto riavviare sshd.

Quindi non dimenticare di eseguire il backup del /etc/passwdfile originale prima di applicare eventuali sostituzioni regex su di esso :)


-8

Anche io stavo avendo lo stesso problema con python virtualenv. È stato corretto con un semplice riavvio

sudo shutdown -r now

4
in realtà basterebbe passare a una directory esistente come Hooman ha già detto nella sua risposta molto tempo fa ...
derHugo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.