Linux Tips #1: turbinando o comando “pwd”

Guilherme Teixeira
Black Technology
Published in
3 min readJul 19, 2020

Neste texto você aprenderá mais sobrepwd, aliases, xclip/pbcopy e .bashrc/.zshrc.

O comando pwd (acrônimo para “print working directory”) executa uma tarefa simples, porém bastante útil, que pode ser explicada pelo seu próprio nome: printar na tela o caminho desde a raiz até a pasta onde você está.

Mas pode ser que você precise copiar esse caminho, e para isso você precisa:

  1. rodar o pwd,
  2. selecionar a linha que contém o caminho (ou dar um clique duplo nela),
  3. dar um ctrl+v na seleção.

Acontece que o programador, por definição, é um profissional preguiçoso; ele gosta de evitar movimentos repetidos. Como eu preciso inserir caminhos hardcoded com alguma frequência no dia a dia, decidi turbinar meu pwdusando um alias que mostra o caminho e, ao mesmo tempo, copia ele para a Área de Transferência do sistema operacional. É o pwdcp.

Linux:

pwdcp='pwd && pwd | tr -d  '\n' | xclip -selection clipboard'

macOS:

pwdcp='pwd && pwd | tr -d  '\n' | pbcopy'

Isso aqui é um alias, inserido no meu .zshrc (equivalente ao .bashrc, só que do Z-Shell). Aliases encapsulam comandos (geralmente longos e/ou complexos) em nomes fáceis de lembrar. Em vez de git push origin master, por exemplo, você pode usar gpom.

Agora explicando o que esse alias faz: ele poderia simplesmente rodar o pwde usar seu output como input do pbcopy/xclip, porém por padrão ele copia também a próxima linha, vazia, — e é aí onde entra a próxima parte do alias: o tr.

O tr é outro comando-acrônico que significa translate characters. Ele basicamente substitui ou deleta caracteres para você. Como uma quebra de linha é equivalente aos caracteres “\n”, você só precisa passar o parâmetro -d (de “delete”) e a “string” que você quer deletar; no nosso caso, o “\n”.

Exemplo de funcionamento do tr:echo "la-li-lu-le-lo" | tr -d "aeiou"

A terceira e última parte do alias é você passando para o pbcopy/xclip o output transformado do tr. Aqui existe uma pequena diferença de ferramentas usadas, já que o pbcopy e o xclip são exclusivos para Mac e Linux, respectivamente. Se, no entanto, você não tem um deles instalado no seu sistema operacional, é fácil de resolver.

  • Se estiver no Mac: brew install pbcopy
  • Se estiver no Ubuntu, Mint, Debian ou derivados: sudo apt install xclip
  • Se estiver o Arch… bom, você sabe o que fazer.

Depois de entendido o que cada parte do alias faz, o ideal é inseri-lo no seu arquivo de configuração do Bash ou do Zsh (ou de qualquer outro shell que você esteja usando).

O caminho mais seguro é abrir seu arquivo de configuração, colar o alias lá, salvar, fechar e rodar o source com o arquivo como parâmetro. Pense no source como um F5, que vai reexecutar o arquivo e fazer valer a alteração como se você tivesse aberto outra sessão do shell. É possível fazer o mesmo procedimento usando o operador de append, o “>>”, mas não há certeza de que todos os caracteres aparecerão corretamente.

Isso conclui este texto. Através de um alias que executa uma função super específica, você se familiarizou mais com vários comandos e conceitos presentes no seu shell: os comandos pwd, tr e source os aliases, xclip/ pbcopy, os arquivos de configuração .bashrc e .zshrc, os operadores pipe (“|”) e append (“>>”), o Bash e o Z-Shell e os gerenciadores de pacotes brew e apt.

Não se esqueça de dar 50 claps para este texto se o que você aprendeu nele foi útil. Isso ajuda bastante na divulgação deste blog de tecnologia!

--

--