Como navego entre diretórios no terminal?

26

Eu sou novo no Linux e Ubuntu e tentei mudar para pastas / diretórios com alguma dificuldade.

Alguém poderia explicar por que os seguintes comandos falharam ao mudar para a pasta / diretório de destino desejado?

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$
n00b
fonte

Respostas:

38

O sistema de arquivos é GNU / Linux é como uma árvore, exceto que a raiz está no topo. :-) Então você tem uma estrutura como:

/
  bin/
  home/
    sharon/
      Documents/
      Downloads/
      fileA.txt
      fileB.jpg
  usr/
  var/

Se você deseja mover-se dentro da árvore, uma opção é usar caminhos relativos. Se você estiver dentro /home/sharon, a digitação cd Downloadsfuncionará, pois o Downloads é um filho imediato do seu diretório atual. Se você estiver na subpasta Documentse quiser mudar o diretório ( cd) para Downloads, precisará subir ( ..) e depois para Downloads. Portanto, o comando correto seria cd ../Downloads.

Você também pode inserir um caminho absoluto. Portanto, a Downloadspasta é uma subpasta da sharonqual é uma subpasta homeque é… (você entendeu :-)) Para que você também possa entrar cd /home/sharon/Downloadsonde quer que esteja no sistema de arquivos.

  • ~sempre se refere ao diretório inicial do usuário atual ( /home/sharonno seu caso). Se você entrar, cd ~/Downloadsvocê chegará à sua Downloadspasta.

  • .refere-se ao diretório atual, portanto cd ./Downloadsé aproximadamente equivalente a cd Downloads.

  • .. significa "diretório pai".

  • / no início do caminho do arquivo refere-se ao diretório raiz.

A próxima coisa legal é a expansão de guias. Se você digitar cd ~/DowTab(o último pressionando a tecla Tabulador), o bash o expandirá automaticamente para cd ~/Downloads.

Como os outros disseram, o GNU / Linux faz distinção entre maiúsculas e minúsculas. Portanto, faz diferença se você digitar Home, hOmeou home. Além disso, espero que você veja agora que há uma diferença entre /homee home. O primeiro é endereçado como absoluto, enquanto o último é relativo ao seu diretório atual.

qbi
fonte
1
@ qbi: Uau, você é incrível. Eu amo sua explicação detalhada sobre como navegar entre pastas / diretórios. Você é professor ou professor em uma instituição educacional? A maioria dos profissionais de TI conhece muitas coisas de TI, mas dividir os conceitos em partes gerenciáveis ​​e "digeríveis", para que os novatos possam entender, está apenas ao alcance de alguns caras talentosos como você.
N00b
2
@ n00b Se achou esta resposta útil, você pode "aceitá-la" clicando no V à esquerda dela.
Revetahw diz Reinstate Monica
8
sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 

O pequeno cedilla ~ indica que você já está em seu diretório / home / sharon. Quando você pede 'cd Home', o terminal procura / home / sharon / Home. Não há nenhum.

sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 

Agora você está solicitando, dada a barra inicial, para ir para um diretório acima do local atual; isso é / casa / casa. Não há nenhum.

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$

Sucesso!

sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 

Não tenho muita certeza de onde exatamente isso é. Se você deseja alterar de / home / sharon / Documents para / home / sharon / Downloads, tente:

cd ~/Downloads

Se você deseja ir diretamente para o diretório inicial, ou seja / home / sharon, basta:

cd

Além disso, você pode voltar com

cd ..

E você pode imprimir o diretório em que está trabalhando (imprimir o diretório de trabalho)

pwd
chili555
fonte
@ chili555: Muito obrigado por ajudar novatos como eu. Feliz Natal para você e seus entes queridos.
N00b
2
A barra inicial indica um caminho relativo à raiz, não um acima do diretório atual. Isso seria../
psusi
3

O comando informa o porquê: Não existe esse diretório.

Os nomes de arquivos diferenciam maiúsculas de minúsculas, portanto é / home, não / Home. Sem uma barra inicial, supõe-se que seja relativo ao diretório atual e o diretório Downloads não esteja em ~ / Documents, nem em /, mas em seu diretório pessoal, para o qual ~é um atalho, portanto, é ~ / Documentos.

psusi
fonte
@ psusi: Obrigado também. Feliz Natal para você e seus entes queridos.
N00b
@ psusi: O que significa a barra principal?
N00b
@ psusi: O que significa ./ <nome do arquivo> significa?
N00b
@noob, /significa iniciar a partir do diretório raiz e .o diretório atual.
psusi
0

Eu tenho que responder sobre isso, porque eu não posso comentar sobre as respostas -.-

O que significa a barra principal? - n00b

isso significa que o problema que você está falando é um diretório, não um arquivo. Os arquivos não precisam ter finais de arquivo, como no Windows, portanto, ~/thisIsAFileseria um arquivo no diretório inicial, mas ~/thisIsAFile/seria um diretório / uma pasta.

O que significa? - n00b

Isso significa que o arquivo que você deseja acessar está no seu diretório atual.

Outras dicas úteis:

Você pode voltar uma pasta com

cd ..

E você pode obter o caminho em que está (imprimir diretório de trabalho)

pwd
a2r
fonte
@ a2r: Obrigado pelo esclarecimento. Eu não sabia que os arquivos não têm extensões de arquivo, como no Microsoft Windows. Os programas também têm extensões de arquivo no Ubuntu?
N00b
Geralmente não, o sistema não se importa com as terminações de um arquivo, se estiver marcado como executável (google sobre chmod), você poderá executá-lo como um programa. Também existe uma variável global (google sobre isso) chamada $ PATH; há um diretório de exibição salvo (você pode ver com o que existe echo $PATH). E quando você tenta executar um programa como você digita geditno terminal. Seu sistema parece jogar as pastas em $ PATH e procura o gedit.
A2R
1
Isso seria uma barra final, não uma barra principal. Além disso, você deve ter um espaço lá antes do ...
psusi
@ psusi: Desculpe. Estou um pouco confuso aqui. O que é uma barra final? barra principal? Exemplos por favor? Desde já, obrigado.
N00b