Навигация по USB-накопителю с «cd / myOtherFolder» вызывает ошибку «no such directory»

11

При навигации по файловой системе моего USB-накопителя в терминале происходят странные вещи, которых не было на моем Raspberry Pi B +. Я не совсем уверен, как это сформулировать, поэтому я просто покажу, что

  1. Я открываю командную строку и перехожу к своему USB-накопителю с cd /media/pi/MYUSB/

  2. Я использую, cdчтобы войти в папку на диске USB сcd /myFolder/myOtherFolder

  3. Я возвращаюсь назад myFolderсcd ..

  4. Я пытаюсь снова перейти к myOtherFolderс cd /myOtherFolder. Тем не менее, это вызывает ошибку Bashbash: cd: /myOtherFolder: no such file or directory

Я понятия не имею, что или почему это происходит, но я имел обыкновение делать это без сообщения об ошибке. Иногда у меня возникают перебои в подаче электроэнергии, которые приводят к отключению Raspberry Pi с помощью USB-накопителя, поэтому у меня есть «призрачные USB-накопители», подобные тем, которые описаны в Ghost USB-накопителях, оставленные после выключения и включения питания .

Генри Вестфолл
источник

Ответы:

32

Вы ставите ведущий / на ваш путь! Это корневой каталог, то есть то, что вы пишете дальше, это абсолютный путь. Ваш / myFolder / myOtherFolder не находится на вашем USB, если он все равно установлен в / media / pi / MYUSB /.

Но вы можете использовать cd myOtherFolderв случае, если вы спрашиваете. Я предлагаю прочитать базовый учебник об обработке файлов в Linux (или Unix), файловых системах и тому подобном.

Nyos
источник
10

Чтобы вдаваться в подробности -

Независимо от того, пришли вы из Windows или Mac OS X, вы будете привыкать к тому, что внешние накопители независимы от вашего жесткого диска (более или менее).

Частью традиции Unix является «избегать особых случаев, где это возможно». Например, в Unix (и GNU / Linux) клавиатура представляется в виде файла, который можно открывать и читать из текстового файла. Так же как и последовательный порт (который также может быть записан). На Raspberry Pi можно управлять даже выводами GPIO следующим образом. Существует файл с именем, /dev/zeroкоторый выдает последовательность из 0 байтов при чтении. И т.п.

Это была блестящая идея, поскольку она позволяла создавать программы без особых случаев.

В любом случае, в аналогичной традиции существует одна структура каталогов для всей системы, начиная с /(корневой каталог). Никаких особых случаев, никаких «букв дисков». Просто /.

Диски могут быть «подключены» где-то в этой структуре с помощью mountкоманды (Raspberry Pi настроен для этого автоматически, но вы также можете сделать это вручную).

Путь к каждому файлу /каким-то образом происходит (например, /home/pi/test.txt). Из-за этого путь, начинающийся с « /предполагается», является «абсолютным» путем, начинающимся с корневого каталога всей системы. Без /начала он считается «относительным» путем, то есть начинается с текущего каталога.

Два других трюка - вы, вероятно, знаете, что путь, начинающийся с, ..относится к родительскому каталогу. Путь, начинающийся с ~вашего домашнего каталога, например, ~/test.txtработает одинаково, независимо от вашего текущего каталога.

Artelius
источник
3
Для полноты пути, начинающегося с, .ссылается на текущий каталог. Это важно, когда кто-то хочет запустить команду, хранящуюся в текущем каталоге: простой ввод fooприведет $PATHк поиску, и будет выполнен первый каталог в нем, содержащий файл с именем foo. Но набор ./fooкоманд указывает оболочке явно искать в текущем каталоге, а не искать $PATH.
Монти Хардер