Comandos intermediários de Terminal

Dicas - 05/Abr/2020 - por André Kanamura

Na última dica mostramos algumas opções de comandos básicos de Terminal. Agora, vamos explicar como usar outros comandos que são muito úteis no dia a dia: grep, find e history.

grep

O comando grep é utilizado para buscar palavras em arquivos. Ele te devolve a linha em que a ocorrência aparece e, se for uma busca em múltiplos arquivos, em qual arquivo foi encontrada.

$ grep palavra arquivo.rb
    linha na qual a palavra aparece no arquivo
    outra linha em que a palavra aparece

Se você quiser buscar um termo em múltiplos arquivos pode executar:

$ grep palavra arquivo1.rb arquivo2.br. arquivo3.rb

Também é possível buscar em todos os arquivos dentro de uma pasta. Basta navegar até o diretório no qual queremos pesquisar o termo e rodar:

$ grep palavra *

Uma outra boa forma de usar esse comando é junto com as opções -r e -i para fazer a busca recursivamente (-r) em todas as subpastas e case insensitive (-i), desconsidera diferenças de maiúsculas e minúsculas):

$ grep -r -i palavra .

find

O comando find é utilizado para encontrar arquivos e diretórios. Simplificadamente, a estrutura do comando find é a seguinte:

$ find caminho_do_diretorio nome_do_arquivo

No meio desse comando você pode incluir uma série de opções, por exemplo, para buscar apenas arquivos ou apenas diretórios.

$ find . -type f
#=> Lista todos os arquivos no diretório corrente.

$ find . -type d 
#=> Lista todos os diretórios dentro do diretório corrente.

Para buscar no diretório corrente um arquivo com nome específico:

$ find . -type f -name "nome_do_arquivo.txt"

Mas se não recordamos exatamente o nome do arquivo, podemos usar * para fazer uma busca parcial. Por exemplo, se quisermos procurar arquivos que comecem com "nome" mas não recordamos o restante:

$ find . -type f -name "nome*"

history

O comando history mostra o histórico dos comandos que você utilizou. Você pode usar esse comando em conjunto com outros para obter resultados mais precisos, por exemplo:

$ history | tail
#=> Mostra apenas os últimos 10 comandos.

$ history | grep termo
#=> Mostra apenas os comandos que incluem o termo filtrado no grep.
Foto de perfil do autor
André Kanamura

Dev na Campus Code