La navigazione attraverso l'unità USB con "cd / myOtherFolder" provoca l'errore "nessuna directory di questo tipo"


11

Durante la navigazione del file system della mia unità USB nel terminale, accadono alcune cose strane che non accadevano sul mio Raspberry Pi B +. Non sono sicuro di come articolarlo, quindi mostrerò semplicemente cos'è

  1. Apro la riga di comando e utilizzo l'unità USB cd /media/pi/MYUSB/

  2. Uso cdper inserire una cartella dell'unità USB concd /myFolder/myOtherFolder

  3. Vado indietro myFolderconcd ..

  4. Provo di nuovo a navigare myOtherFoldercon cd /myOtherFolder. Tuttavia, ciò genera l'errore bashbash: cd: /myOtherFolder: no such file or directory

Non ho idea di cosa o perché stia succedendo, ma ero in grado di farlo senza il messaggio di errore. A volte ho interruzioni di corrente che causano lo spegnimento del Raspberry Pi con l'unità USB al suo interno, quindi ho "unità USB fantasma" come quelle descritte nelle unità Ghost USB lasciate indietro quando l'alimentazione viene spenta e accesa .

Risposte:


32

Metti un / ai tuoi nomi di percorso! Questa è la directory principale, il che significa che quello che scrivi dopo è un percorso assoluto. / MyFolder / myOtherFolder non è sulla tua USB se è montato all'interno / media / pi / MYUSB / comunque.

Ma puoi usarlo cd myOtherFoldernel caso lo stai chiedendo. Suggerisco di leggere alcuni tutorial di base sulla gestione dei file Linux (o Unix), sui filesystem e così via.


10

Per entrare un po 'più in dettaglio -

Che tu provenga da uno sfondo di Windows o Mac OS X, sarai abituato a unità esterne come luoghi indipendenti dal tuo disco rigido (più o meno).

Parte della tradizione Unix è "evitare casi speciali ove possibile". Ad esempio in Unix (e GNU / Linux), una tastiera è rappresentata come un file che può essere aperto e letto come un file di testo. Quindi è una porta seriale (che può anche essere scritta). Su un Raspberry Pi anche i pin GPIO possono essere controllati in questo modo. C'è un file chiamato /dev/zeroche produce una sequenza di 0 byte quando lo leggi. Eccetera.

Questa è stata un'idea geniale in quanto ha permesso di costruire programmi senza avere tutti i tipi di casi speciali.

Ad ogni modo, in una tradizione simile, esiste una struttura di directory per l'intero sistema, a partire da /(la directory principale). Nessun caso speciale, nessuna "lettera di unità". Basta /.

Le unità possono essere "collegate" da qualche parte in questa struttura usando il mountcomando (un Raspberry Pi è configurato per farlo automaticamente, ma è anche possibile farlo manualmente).

Il percorso di ogni file scende /in qualche modo (ad esempio, /home/pi/test.txt). Per questo motivo, /si presume che un percorso che inizia con sia un percorso "assoluto", a partire dalla directory principale dell'intero sistema. Senza /all'inizio, è considerato un percorso "relativo", ovvero parte dalla directory corrente.

Altri due trucchi: probabilmente saprai che un percorso che inizia con ..fa riferimento alla directory principale. Un percorso che inizia con ~inizia dalla home directory, ad es. ~/test.txtFunziona allo stesso modo, indipendentemente dalla directory corrente.


3
Per completezza, un percorso che inizia con si .riferisce alla directory corrente. Questo è importante quando si desidera eseguire un comando memorizzato nella directory corrente: la semplice digitazione fooprovocherà la $PATHricerca e fooverrà eseguita la prima directory elencata in esso che contiene un file chiamato . Ma la digitazione ./fooindica alla shell di cercare esplicitamente nella directory corrente invece di cercare $PATH.
Monty Harder
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.