Navegando no sistema de arquivos: pwd, ls e cd
Três comandos resolvem 90% da navegação: saber onde você está, ver o que tem ali e se mover — sem clicar em nada.
No Finder ou no Explorer, você sempre sabe "onde está" porque enxerga a janela, o caminho de pastas abertas, os ícones. No terminal isso não é visual — você precisa perguntar. É exatamente pra isso que existem pwd, ls e cd: os três comandos que substituem clicar duas vezes numa pasta.
pwd — onde você está agora
pwd significa print working directory ("imprimir o diretório de trabalho") e mostra o caminho completo da pasta em que o terminal está posicionado no momento.
pwdTodo comando que você roda depois disso age a partir dessa pasta, a não ser que você diga o contrário. É por isso que "onde estou" é sempre a primeira pergunta a fazer quando algo não se comporta como esperado.
ls — o que tem aqui
ls (list) lista o conteúdo da pasta atual. Sozinho, ele mostra só os nomes:
lsNa prática, quase ninguém usa ls puro — o combo mais comum é ls -la, que junta duas flags:
ls -laO -l muda pro formato "longo" — uma linha por item, com permissões, dono, tamanho e data (a próxima lição explica cada coluna dessas em detalhe). O -a ("all") mostra também os arquivos ocultos, que no Linux/macOS são simplesmente qualquer arquivo cujo nome começa com . — como .env e .git no exemplo acima. Sem -a, esses dois nunca apareceriam, e é justamente onde ficam configurações importantes.
cd — mudando de pasta
cd (change directory) move o terminal pra outra pasta.
cd srcRepare que cd normalmente não imprime nada quando dá certo — silêncio é sucesso, no terminal. Se você errar o nome da pasta, aí sim aparece um erro do tipo no such file or directory.
Caminho absoluto vs. relativo
Existem duas formas de dizer "onde" uma pasta ou arquivo está. Um caminho absoluto começa da raiz do sistema (/) e funciona de qualquer lugar que você esteja: /Users/joana/projetos/site/src. Um caminho relativo parte de onde você já está agora: se você já estiver dentro de projetos/site, basta cd src.
. → a pasta atual (usado com comandos que pedem uma pasta explícita, ex: "cp arquivo .")
.. → a pasta um nível acima (a "pasta mãe")
~ → a pasta pessoal do usuário logado (ex: /Users/joana ou /home/joana)cd ..
pwd
cd ~
pwdcd .. sobe um nível; cd ~ te leva direto pra sua pasta pessoal de qualquer lugar do sistema, sem precisar digitar o caminho completo. E cd sozinho, sem argumento nenhum, faz a mesma coisa que cd ~ — vai direto pra casa.
Exercício
Você está em /Users/joana/projetos/site/src e quer ir direto pra /Users/joana/projetos — duas pastas acima de onde está. Sem digitar o caminho absoluto completo, como fazer isso num único comando?