Navegar pela unidade USB com "cd / myOtherFolder" causa um erro "sem esse diretório"

11

Ao navegar no sistema de arquivos da minha unidade USB no terminal, acontecem coisas estranhas que não costumavam acontecer no meu Raspberry Pi B +. Não sei bem como articular isso, então mostrarei o que é

  1. Abro a linha de comando e navego para minha unidade USB com cd /media/pi/MYUSB/

  2. Eu uso cdpara entrar em uma pasta da unidade USB comcd /myFolder/myOtherFolder

  3. Navego para trás myFoldercomcd ..

  4. Eu tento navegar novamente para myOtherFoldercom cd /myOtherFolder. No entanto, isso gera o erro do bashbash: cd: /myOtherFolder: no such file or directory

Não tenho idéia do que ou por que isso está acontecendo, mas costumava fazer isso sem a mensagem de erro. Às vezes, tenho falta de energia que faz com que o Raspberry Pi seja desligado com a unidade USB, portanto, tenho "unidades USB fantasmas" como as descritas nas unidades USB Ghost deixadas para trás quando a energia é desligada e ligada novamente .

Henry Westfall
fonte

Respostas:

32

Você coloca um líder / no seu caminho! Esse é o diretório raiz, o que significa que o próximo passo é um caminho absoluto. Seu / myFolder / myOtherFolder não está no seu USB se estiver montado dentro de / media / pi / MYUSB / de qualquer maneira.

Mas você pode usar cd myOtherFolderno caso de estar perguntando. Eu sugiro a leitura de algum tutorial básico sobre o manuseio de arquivos do Linux (ou Unix), sistemas de arquivos e outros.

Nyos
fonte
10

Para entrar em mais detalhes -

Independentemente de você possuir um plano de fundo do Windows ou do Mac OS X, estará acostumado a unidades externas que são locais independentes do seu disco rígido (mais ou menos).

Parte da tradição do Unix é "evitar casos especiais sempre que possível". Por exemplo, no Unix (e GNU / Linux), um teclado é representado como um arquivo que pode ser aberto e lido a partir de um arquivo de texto. O mesmo acontece com uma porta serial (que também pode ser gravada). Em um Raspberry Pi, mesmo os pinos GPIO podem ser controlados assim. Há um arquivo chamado /dev/zeroque produz uma sequência de 0 bytes quando você o lê. Etc.

Essa foi uma idéia brilhante, pois permitiu a construção de programas sem ter todo tipo de casos especiais.

De qualquer forma, em uma tradição semelhante, existe uma estrutura de diretórios para todo o sistema, começando em /(o diretório raiz). Sem casos especiais, sem "letras de unidade". Apenas /.

As unidades podem ser "anexadas" em algum lugar dessa estrutura usando o mountcomando (um Raspberry Pi está configurado para fazer isso automaticamente, mas você também pode fazê-lo manualmente).

O caminho de cada arquivo desce de /alguma maneira (por exemplo, /home/pi/test.txt). Por esse motivo, um caminho que começa com /é assumido como um caminho "absoluto", iniciando no diretório raiz de todo o sistema. Sem o /no início, é considerado um caminho "relativo", ou seja, inicia no diretório atual.

Dois outros truques - você provavelmente sabe que um caminho que começa com ..refere-se ao diretório pai. Um caminho que começa com ~começa no seu diretório pessoal, por exemplo, ~/test.txtfunciona da mesma maneira, não importa qual seja o diretório atual.

Artelius
fonte
3
Para completar, um caminho que começa com .refere-se ao diretório atual. Isso é importante quando se deseja executar um comando armazenado no diretório atual: simplesmente digitar foofará com que a $PATHpesquisa seja realizada, e o primeiro diretório listado nele que contém um arquivo nomeado fooserá executado. Mas digitar ./fooinstrui o shell a procurar explicitamente no diretório atual em vez de pesquisar $PATH.
Monty mais duro