Trabalhando com caminhos e pastas no terminal

Jonilson Sousa
Jonilson Sousa

Compartilhe

Neste artigo vamos entender como funcionam os caminhos de diretórios do sistema operacional e como evitar as cascas de banana que podemos enfrentar quando precisamos utilizar esses caminhos, como por exemplo, quando estamos trabalhando com repositórios remotos no Git.

Porque este assunto?

Aqui na Alura temos um fórum onde as alunas e alunos podem tirar suas dúvidas, com outras alunas, alunas, instrutores(as) e moderadores(as).

Percebi que, principalmente com quem está começando a estudar DevOps, principalmente no cursos de Git e Git (Temos esses dois cursos: Git e Github: Controle e compartilhe seu código e Git e Github: Estratégias de ramificação, Conflitos e Pull Requests, é que existem dúvidas recorrentes de erros nos caminhos dos diretórios, ou seja das pastas, independemente do sistema operacional.

Problemas recorrentes

O que acontece quando compramos um computador novo ou quando colocamos o sistema operacional Windows (nos sistemas Unix funciona de outra forma) em nossas máquinas? Colocamos nosso nome de usuário composto, não é mesmo? Porém, quando vamos trabalhar com caminhos, como é o caso de quando precisamos adicionar um repositório remoto ao projeto que estamos trabalhando, podemos ter alguns problemas.

Mas não entenda que isso só acontece nesses casos, às vezes quando estamos apenas navegando entre os diretórios por meio do terminal temos os mesmos problemas, pense que queremos acessar a pasta “Documents” que está dentro da pasta “Jonilson Sousa” que está dentro da pasta “Users”, que por sinal está dentro da pasta “C:”, para isso precisamos utilizar o seguinte comando:

cd C:/Users/Jonilson Sousa/Documents

Tudo certo com este comando? Não nesse caso vamos ter o erro como “too many arguments”, como podemos ver na imagem abaixo:

print do erro

Isso acontece porque o terminal não entende o caminho por conta do espaço no nome do usuário. Isso também pode acontecer com outras pastas. Veja que estamos dentro da pasta “Documents” e há outra pasta com o nome “meu trabalho”. Vamos tentar executar o seguinte comando:

cd meu trabalho

print do erro numero 2

Receberemos o mesmo erro (“too many arguments”).

Você deve estar se perguntando: como resolvemos este erro? Ou então: será que isso pode acontecer nos sistemas baseados em Unix, como é o caso do MacOS ou Ubuntu, por exemplo?

Usuários nos outros sistemas

Os sistemas baseados em Unix não permitem que criemos nomes de usuários utilizando espaços ou caracteres especiais. Já o Windows permite. Logo, se fossemos criar um usuário no Ubuntu, com o nome “Jonilson Sousa”, (com espaçamento), o sistema prontamente nos apresentaria uma mensagem de erro.

Porém, se já tivermos o usuário criado (no Windows) com um nome composto, como podemos ajustar?

Utilizando nomes compostos

Podemos contornar esta situação utilizando aspas (“ ”). Veja os erros anteriores, agora com aspas:

print do erro um ajustado

E também acessando a pasta “meu trabalho”:

print do erro um ajustado

Além da utilização das aspas, podemos utilizar a barra invertida no nome da pasta. Veja o exemplo:

cd C:/Users/Jonilson\ Sousa/Documents

cd meu\ trabalho

print do erro um ajustado

Nos sistemas Linux

As distribuições Linux seguem a mesma linha: podemos utilizar as aspas (“ ”) ou a barra invertida para acessarmos pastas com nomes compostos (com espaços):

print do erro um ajustado

print do erro um ajustado

Com base nos exemplos vistos acima, a preferência por nomes sem espaços é interessante, já que assim podemos utilizar hífens ( - ), underlines ( _ ) ou os nomes juntos (penso que a compreensão fica um pouco mais difícil desta forma), evitando, assim, o uso de aspas ou barras invertidas, que podem nos custar em produtividade.

Conclusão

Estes são alguns dos erros comuns que levam muitas pessoas a criarem tópicos no fórum da Alura, então é interessante entendermos a origem destes erros e como corrigi-los.

Isso traz benefícios em desempenho quando trabalhamos em projetos e quando precisamos utilizar servidores ou máquinas sem interfaces gráficas, como é o caso das máquinas criadas pelo Vagrant ou então quando trabalhamos em container Docker.

Gostou deste artigo e quer saber mais sobre como trabalhamos com o terminal, máquinas Vagrant ou com containers Docker? A [formação DevOps da Alura](https://cursos.alura.com.br/formacao-devops) foi feita para você aprender e se desenvolver neste assunto.

Veja outros artigos sobre DevOps