La navigation sur le lecteur USB avec «cd / myOtherFolder» provoque l'erreur «no such directory»

11

Lors de la navigation dans le système de fichiers de ma clé USB dans le terminal, des choses étranges se produisent qui ne se produisaient pas sur mon Raspberry Pi B +. Je ne sais pas trop comment articuler cela, donc je vais juste montrer ce qui est

  1. J'ouvre la ligne de commande et accède à ma clé USB avec cd /media/pi/MYUSB/

  2. J'utilise cdpour entrer un dossier de la clé USB aveccd /myFolder/myOtherFolder

  3. Je reviens en arrière myFolderaveccd ..

  4. J'essaie de naviguer à nouveau myOtherFolderavec cd /myOtherFolder. Cependant, cela soulève l'erreur bashbash: cd: /myOtherFolder: no such file or directory

Je n'ai aucune idée de quoi ou pourquoi cela se produit, mais je pouvais le faire sans le message d'erreur. Parfois, j'ai des pannes de courant qui provoquent l'arrêt du Raspberry Pi avec le lecteur USB, donc j'ai des «lecteurs USB fantômes» comme ceux décrits dans les lecteurs USB Ghost laissés lorsque l'alimentation est coupée et rallumée .

Henry Westfall
la source

Réponses:

32

Vous mettez un leader / à vos noms de chemin! C'est le répertoire racine, ce qui signifie que ce que vous écrivez ensuite est un chemin absolu. Votre / myFolder / myOtherFolder n'est pas sur votre clé USB s'il est monté dans / media / pi / MYUSB / de toute façon.

Mais vous pouvez l'utiliser cd myOtherFolderdans le cas où vous le demandez. Je suggère de lire un didacticiel de base sur la gestion des fichiers Linux (ou Unix), les systèmes de fichiers, etc.

Nyos
la source
10

Pour entrer un peu plus dans les détails -

Que vous veniez d'un arrière-plan Windows ou Mac OS X, vous serez habitué à ce que les disques externes soient des emplacements indépendants de votre disque dur (plus ou moins).

Une partie de la tradition Unix consiste à "éviter les cas particuliers dans la mesure du possible". Par exemple sous Unix (et GNU / Linux), un clavier est représenté comme un fichier qui peut être ouvert et lu comme un fichier texte. Il en va de même pour un port série (qui peut également être écrit). Sur un Raspberry Pi, même les broches GPIO peuvent être contrôlées comme ceci. Il existe un fichier appelé /dev/zeroqui produit une séquence de 0 octet lorsque vous le lisez. Etc.

C'était une idée géniale car elle permettait de construire des programmes sans avoir toutes sortes de cas particuliers.

Quoi qu'il en soit, dans une tradition similaire, il existe une structure de répertoires pour l'ensemble du système, en commençant par /(le répertoire racine). Pas de cas particuliers, pas de "lettres de lecteur". Justement /.

Les disques peuvent être «attachés» quelque part dans cette structure à l'aide de la mountcommande (un Raspberry Pi est configuré pour le faire automatiquement, mais vous pouvez également le faire manuellement).

Le chemin de chaque fichier descend d'une /certaine manière (par exemple, /home/pi/test.txt). De ce fait, un chemin commençant par /est supposé être un chemin "absolu", partant du répertoire racine de l'ensemble du système. Sans /au début, il est considéré comme un chemin "relatif", c'est-à-dire qu'il part du répertoire courant.

Deux autres astuces: vous savez probablement qu'un chemin commençant par ..fait référence au répertoire parent. Un chemin commençant par ~commence à partir de votre répertoire personnel, par exemple ~/test.txtfonctionne de la même manière quel que soit votre répertoire actuel.

Artelius
la source
3
Pour être complet, un chemin commençant par .fait référence au répertoire courant. Ceci est important lorsque l' on veut exécuter une commande stockée dans le répertoire courant: il suffit de taper fooprovoquera le $PATHà fouiller, et le premier répertoire répertorié dans ce qui contient un fichier nommé foosera exécuté. Mais la saisie ./foodemande au shell de chercher explicitement dans le répertoire courant plutôt que de rechercher $PATH.
Monty Harder