Como usar o comando cd no Linux

Um gráfico de uma janela de terminal em um sistema de laptop Linux.
Fatmawati Achmad Zaenuri / Shutterstock

Alguns comandos do Linux são tão familiares que nem percebemos que os estamos usando. cdcomando para alterar diretórios é um destes. Existem alguns truques que podem ajudá-lo a se tornar mais eficiente com cd– ou você pode abandoná-los completamente.

Um comando em que você raramente pensa

Você pisca o dia todo, todos os dias, mas, na maioria das vezes, não percebe. A menos que algo entre em seus olhos, você raramente pensa naquele pequeno movimento regular. Alguns comandos do Linux são assim. Eles pairam na periferia de sua consciência. Mesmo que você os use diariamente, eles não chamam sua atenção porque são muito pequenos e simples.

Na primeira hora de uso de um computador Linux, você aprende a usar o  cd comando incluído com o Bash e outros shells. Talvez você tenha experiência anterior em usá-lo em outro sistema operacional e não precise de uma explicação. Ele muda o diretório de trabalho atual, certo? O que mais há para saber?

Bem, mais do que você pensa. Aqui estão algumas dicas e sugestões que podem melhorar sua eficiência.

As operações de cd padrão

Para ficarmos completos, vamos examinar rapidamente os usos padrão de cd.

Se estivermos no diretório inicial, mas quisermos mudar para um localizado em /usr/lib/firefox/browsere depois retornar ao diretório inicial, podemos usar os seguintes comandos:

cd / usr / lib / firefox / browser /
cd / home / dave

Os comandos "cd / usr / lib / firefox / browser /" e "cd / home / dave" em uma janela de terminal.

Você não precisa digitar todo o caminho do diretório; você pode usar o preenchimento automático. Para cada parte de um caminho, depois de digitar letras suficientes para distinguir o nome do diretório dos outros, pressione Tab para preencher automaticamente o nome do diretório.

Por exemplo, digite o seguinte na linha de comando:

cd / usr / lib / fire

Agora, pressione Tab e o shell preencherá o restante do diretório “firefox” para você. Se você adicionar “/ b” ao caminho e pressionar Tab novamente, o diretório “navegador” será adicionado ao comando.

O shell adiciona uma barra final para que você possa repetir o processo de conclusão da tabulação. É também por isso que há uma barra final no primeiro comando. Não há um no segundo porque esse foi digitado.

Recomendado:  Como tirar fotos melhores com o seu iPhone

Você pode usar o til ( ~)  como uma forma abreviada de retornar rapidamente ao diretório inicial de qualquer lugar no sistema de arquivos; basta digitar o seguinte:

cd ~

O comando "cd ~" em uma janela de terminal.

Estes são exemplos de caminhos absolutos, nos quais você fornece o caminho completo desde a raiz do sistema de arquivos até o diretório de destino cd.

Os caminhos relativos são referenciados a partir do diretório de trabalho atual. No diretório inicial, existe um diretório chamado work. Você pode usar o treecomando para ver a árvore de diretórios dentro do workdiretório – basta digitar o seguinte:

árvore

O comando "árvore" em uma janela de terminal.

O workdiretório contém um diretório chamado dev. Também existe um diretório chamado devno diretório raiz do sistema de arquivos. Você pode usarls  com  -d(diretório) para examinar cada um deles. A opção -hl(legível por humanos, lista longa) diz  lspara usar unidades fáceis de ler para os tamanhos de diretório e a lista de formato longo.

Se você digitar dev, o shell assume que você quer dizer o “dev” no diretório atual. Para forçá-lo a olhar para o “dev” no diretório raiz, basta adicionar uma barra inicial para representar a raiz do sistema de arquivos, conforme mostrado abaixo:

ls -d dev -hl
ls -d / dev -hl

Os comandos "ls -d dev -hl" e "ls -d / dev -hl" em uma janela de terminal.

O cdcomando se comporta como a lseste respeito. Se você referenciar o diretório como devmostrado abaixo, isso pressupõe que você se refere ao diretório no work diretório:

cd dev

O comando "cd dev" em uma janela de terminal.

Sem uma barra inicial, caminhos mais longos são assumidos para iniciar a partir do diretório de trabalho atual, também, conforme mostrado abaixo:

cd dev / mobile / android

O comando "cd dev / mobile / android" em uma janela de terminal.

RELACIONADOS: 15 caracteres especiais que você precisa saber para o Bash

Mudando o diretório com duplo ponto

O identificador de ponto duplo representa o diretório pai do atual de trabalho. Se você estiver em um subdiretório profundamente aninhado, poderá usar ..  com cd para mover para o diretório pai daquele em que você está.

Isso move você dois diretórios para cima na árvore de diretórios. Se você adicionar mais  ..ao comando, isso permite que você mova um número arbitrário de níveis para cima na árvore de diretórios.

Digite o seguinte:

cd ..
cd ../ ..

Os comandos "cd .." e "cd ../ .." em uma janela de terminal.

Você também pode criar um conjunto de aliases para realizar essas manobras para você, digitando o seguinte:

alias .2 = "cd ../ .."
alias .3 = "cd ../../ .."

Os comandos alias .2 = "cd ../ .." e alias .3 = "cd ../../ .." em uma janela de terminal.

Você pode usá-los da mesma forma que os próprios comandos.

Recomendado:  Como emparelhar um Apple Watch

alias .2 = "cd ../ .." sendo usado para alterar o diretório em uma janela de terminal

Para tornar os aliases consistentes nas reinicializações do computador, você deve adicioná-los ao seu arquivo .bashrcou.bash_aliases .

Salte facilmente entre dois diretórios

O hífen ( -) é outro símbolo que tem uma função especial. Ele muda seu diretório de volta para aquele de onde você acabou de sair.

Para este exemplo, digamos que você esteja no diretório “c”. Você pode usar cdpara mudar para o diretório “adiante”. Em seguida, você pode usar  cd - para saltar para frente e para trás entre os dois diretórios.

Para fazer isso, você digita o seguinte:

cd ../forth

cd –

cd –

Os comandos "cd ../forth," "cd -," e "cd -" em uma janela de terminal.

O nome do diretório para o qual você está se movendo aparece antes de você entrar nele.

Outro tipo de parente

O shell usa o diretório de trabalho atual como “raiz” ou diretório base para caminhos relativos. Você pode usar a  CDPATHvariável de ambiente para definir outro local como o diretório base para caminhos relativos. Se você passa a maior parte do tempo em uma determinada seção da árvore do sistema de arquivos, isso pode economizar muitos toques no teclado (e tempo) todos os dias.

Vamos digitar o seguinte para criar work/dev/projectso diretório base para caminhos relativos:

exportar CDPATH = / home / dave / work / dev / projects

O comando "export CDPATH = / home / dave / work / dev / projects" em uma janela de terminal.

Agora, cada vez que você usa o dccomando, o local na variável deCDPATH ambiente é verificado primeiro para nomes de diretório correspondentes. Se algum deles corresponder ao destino fornecido no comando, você será transferido para esse diretório.cd

Agora, independentemente de onde você esteja no sistema de arquivos, ao usar o cdcomando, o shell verifica se o diretório de destino está localizado no diretório base. Se for, você será movido para esse diretório de destino.

Se seu diretório de destino começar com uma barra ( /), o que o torna um caminho absoluto, ele não será afetado pela CDPATHvariável de ambiente.

Para demonstrar isso, digitamos o seguinte:

CDC
cd prólogo
cd / usr
cd adiante

Os comandos "cd c," "cd prolog", "cd / usr" e "cdfain" em uma janela de terminal.

A CDPATHvariável de ambiente é realmente um caminho, assim como a PATHvariável de ambiente . Quando você digita um comando, o shell pesquisa os locais no em PATHbusca de uma correspondência. Quando você usa  CDPATH, o shell pesquisa os locais na CDPATHvariável de ambiente por uma correspondência. Além disso, o mesmo que  PATH, CDPATHpode conter vários locais.

Recomendado:  O que são as leis de “direito de reparar” e o que elas significam para você?

Para que o shell pesquise o diretório atual antes de outros locais na CDPATHvariável de ambiente, basta adicionar um ponto ( .) no início do caminho, assim:

export CDPATH=.:/home/dave/work/dev/projects

Para tornar suas configurações permanentes, você deve adicioná-las a um arquivo de configuração, como  .bashrc.

Uma coisa a ser observada: se você definir um diretório base, isso também afetará as mudanças de diretório executadas nos scripts. Para evitar isso, você pode usar caminhos absolutos em seus scripts ou um teste em seu .bashrcarquivo ao especificar seu CDPATH, conforme mostrado abaixo:

if test “${PS1+set}”; then CDPATH=.:/home/dave/work/dev/projects; fi

Isso executa um teste para ver se a variável do prompt da linha de comando,, $PS1foi definida. A CDPATH variável de ambiente só será definida se o teste for bem-sucedido.

Usando shopt com cd

Com o shoptcomando , você pode definir certas opções para o shell. Alguns deles podem melhorar o uso do cd. Para defini-los, você usa a -sopção (ativar) com shopt para passar um nome de opção para ele.

A cdspellopção verifica os nomes dos diretórios e corrige alguns erros comuns de digitação, incluindo caracteres transpostos ou ausentes, ou nomes com muitos caracteres. Se encontrar um diretório que corresponda a qualquer uma das correções, o caminho corrigido será impresso e a cdação será executada.

Como exemplo, digitamos o seguinte para definir a cdspellopção e soletramos incorretamente “Desktop” para ver se o shell corrige isso para nós:

shopt -s cdspell
cd Desktpo

O comando "shopt -s cdspell" em uma janela de terminal.

O shell detectou o erro, corrigiu-o e mudou para o diretório “Desktop”.

Outra shoptopção que você pode usar cdé autocd. Ele elimina a necessidade de digitar cd. Qualquer coisa que você digitar que não seja um comando, script ou outro executável (como um alias), é usado como um diretório de destino. Se você puder transferir para esse diretório, ele será impresso na janela do terminal e você será alterado para esse diretório.

Como exemplo, digitamos o seguinte:

shopt -s autocd
/ usr / local / games
/ etc
~

Os comandos "shopt -s autcd," "/ usr / local / games," "/ etc," e "~" em uma janela de terminal.

Vejo! Você pode saltar por todo o sistema de arquivos, mesmo sem usar cd!

As configurações alteradas  shopt afetam apenas shells interativos, não scripts.

A coleção de cd

Você provavelmente não vai adotar tudo isso. No entanto, é provável que você tenha encontrado algo de interesse ou benefício aqui. Afinal, qualquer coisa que acelere ou simplifique sua navegação de linha de comando é bom!