Das Navigieren durch das USB-Laufwerk mit "cd / myOtherFolder" verursacht den Fehler "Kein solches Verzeichnis"

11

Beim Navigieren im Dateisystem meines USB-Laufwerks im Terminal passieren einige seltsame Dinge, die auf meinem Raspberry Pi B + früher nicht passiert sind. Ich bin mir nicht ganz sicher, wie ich das artikulieren soll, also werde ich nur zeigen, was ist

  1. Ich öffne die Kommandozeile und navigiere mit zu meinem USB-Laufwerk cd /media/pi/MYUSB/

  2. Ich benutze cd, um einen Ordner des USB-Laufwerks mit einzugebencd /myFolder/myOtherFolder

  3. Ich navigiere rückwärts zu myFoldermitcd ..

  4. Ich versuche nochmal myOtherFoldermit zu navigieren cd /myOtherFolder. Dies löst jedoch den Bash-Fehler ausbash: cd: /myOtherFolder: no such file or directory

Ich habe keine Ahnung, was oder warum dies geschieht, aber ich konnte dies früher ohne die Fehlermeldung tun. Manchmal habe ich Stromausfälle, die dazu führen, dass der Raspberry Pi mit dem USB-Laufwerk ausgeschaltet wird. Daher habe ich "Ghost-USB-Laufwerke" wie die in Ghost-USB-Laufwerke beschriebenen, die beim Aus- und Einschalten des Geräts zurückbleiben .

Henry Westfall
quelle

Antworten:

32

Sie setzen einen führenden / zu Ihren Pfadnamen! Das ist das Stammverzeichnis, was bedeutet, dass das, was Sie als nächstes schreiben, ein absoluter Pfad ist. Ihr / myFolder / myOtherFolder befindet sich nicht auf Ihrem USB-Stick, wenn er ohnehin in / media / pi / MYUSB / eingebunden ist.

Aber Sie können cd myOtherFolderin dem Fall verwenden, den Sie fragen. Ich empfehle, ein grundlegendes Tutorial über die Dateiverwaltung von Linux (oder Unix), Dateisysteme usw. zu lesen.

Nyos
quelle
10

Um etwas detaillierter zu werden -

Unabhängig davon, ob Sie einen Windows- oder Mac OS X-Hintergrund haben, sind Sie es gewohnt, dass externe Laufwerke (mehr oder weniger) unabhängige Orte von Ihrer Festplatte sind.

Teil der Unix-Tradition ist es, "Sonderfälle nach Möglichkeit zu vermeiden". Beispielsweise wird unter Unix (und GNU / Linux) eine Tastatur als Datei dargestellt, die wie eine Textdatei geöffnet und gelesen werden kann. Dies gilt auch für eine serielle Schnittstelle (auf die auch geschrieben werden kann). Auf einem Raspberry Pi können sogar die GPIO-Pins so gesteuert werden. Es gibt eine Datei namens /dev/zero, die beim Lesen eine Folge von 0 Bytes erzeugt. Etc.

Dies war eine brillante Idee, da damit Programme erstellt werden konnten, ohne dass alle möglichen Sonderfälle auftraten.

Wie auch immer, in einer ähnlichen Tradition gibt es eine Verzeichnisstruktur für das gesamte System, beginnend mit /(dem Stammverzeichnis). Keine Sonderfälle, keine "Laufwerksbuchstaben". Einfach /.

Laufwerke können mit dem mountBefehl irgendwo in dieser Struktur "angehängt" werden (ein Raspberry Pi ist so konfiguriert, dass dies automatisch erfolgt, Sie können dies jedoch auch manuell tun).

Der Pfad jeder Datei stammt /in irgendeiner Weise ab (zum Beispiel /home/pi/test.txt). Aus diesem Grund /wird angenommen, dass ein Pfad, der mit beginnt, ein "absoluter" Pfad ist, der vom Stammverzeichnis des gesamten Systems ausgeht. Ohne das /am Anfang wird es als "relativer" Pfad betrachtet, dh es beginnt im aktuellen Verzeichnis.

Zwei weitere Tricks: Sie wissen wahrscheinlich, dass ein Pfad, der mit beginnt, ..auf das übergeordnete Verzeichnis verweist. Ein Pfad, der mit ~beginnt, beginnt in Ihrem Ausgangsverzeichnis , z. B. ~/test.txtfunktioniert er unabhängig von Ihrem aktuellen Verzeichnis gleich.

Artelius
quelle
3
Der Vollständigkeit halber .verweist ein Pfad, der mit beginnt, auf das aktuelle Verzeichnis. Dies ist wichtig, wenn Sie einen im aktuellen Verzeichnis gespeicherten Befehl ausführen möchten: Durch einfaches Eingeben foowird der Befehl $PATHdurchsucht, und das erste darin aufgeführte Verzeichnis, das eine Datei mit dem Namen enthält, foowird ausgeführt. Durch Eingabe wird ./foodie Shell jedoch angewiesen, explizit im aktuellen Verzeichnis zu suchen und nicht zu suchen $PATH.
Monty Harder