Categories: Tecnologia

Como usar todos os comandos de pesquisa do Linux

Fatmawati Achmad Zaenuri / Shutterstock.com

O Linux oferece seis maneiras diferentes de pesquisar, e cada uma tem seus méritos. Vamos demonstrar como usar find, locate, which, whereis, whatis, e apropos. Cada um se destaca em tarefas diferentes; veja como escolher a ferramenta certa para o trabalho.

Você não tem mais escolha quando se trata de comandos para pesquisar e encontrar no Linux. Por que tantos? Bem, cada um deles tem suas especialidades e tem um desempenho melhor do que os outros em certas circunstâncias. Você pode pensar neles como uma espécie de canivete suíço para pesquisa. Vamos examinar cada lâmina por vez e descobrir seus pontos fortes específicos.

O comando find

O comportamento do  findcomando é difícil de determinar por tentativa e erro. Depois de entender a sintaxe , você começa a apreciar sua flexibilidade e poder.

A maneira mais simples de usar findé apenas digitar finde pressionar Enter.

encontrar

Usado desta forma findse comporta como ls, mas lista todos os arquivos no diretório atual e aqueles em subdiretórios.

Algumas implementações de findrequerem que você coloque o .para o diretório atual. Se for esse o caso com sua versão do Linux, use o seguinte comando:

encontrar .

Para fazer a findpesquisa na pasta raiz, você usaria este comando:

encontrar /

Para iniciar a pesquisa em sua pasta pessoal, use este comando:

encontrar ~

Usando encontrar com padrões de arquivo

Para findser algo mais do que uma versão autorrecorrente de ls, devemos fornecer a ele algo para pesquisar. Podemos fornecer nomes de arquivo ou padrões de arquivo. Os padrões usam curingas, onde *significa qualquer sequência de caracteres e ?significa qualquer caractere único.

Os padrões devem ser citados para funcionar corretamente. É fácil esquecer de fazer isso, mas se você não citar o padrão curinga find, não será capaz de executar corretamente o comando que você deu.

Com este comando, vamos pesquisar na pasta atual por arquivos que correspondam ao padrão “*. * S”. Isso significa qualquer nome de arquivo que tenha uma extensão de arquivo que termina em “s”. Usamos a -nameopção para informar findque estamos passando um nome de arquivo ou um padrão de nome de arquivo.

encontrar . -name "*. * s"

find retorna esses arquivos correspondentes.

Observe que duas das extensões de arquivo têm dois caracteres e uma tem três caracteres. Isso ocorre porque usamos o padrão “*. * S”. Se quiséssemos apenas as extensões de arquivo de dois caracteres, teríamos usado “*.? S”.

Se soubéssemos com antecedência que estávamos procurando arquivos JavaScript “.js”, poderíamos ter sido mais específicos em nosso padrão de arquivo. Além disso, observe que você pode usar aspas simples para envolver o padrão, se preferir.

encontrar . -name '* .js'

Desta vez, findapenas relata os arquivos JavaScript.

Ignorando maiúsculas e minúsculas com encontrar

Se você souber o nome do arquivo que deseja findlocalizar, pode transmiti-lo ao findinvés de um padrão. Você não precisa envolver o nome do arquivo entre aspas se não houver curingas nele, mas é uma boa prática fazer isso o tempo todo. Isso significa que você não se esquecerá de usá-los quando precisar deles.

encontrar . -name 'Yelp.js'

Isso não retornou nada. Mas é estranho, sabemos que esse arquivo deve estar lá. Vamos tentar novamente e dizer findpara ignorar o caso. Fazemos isso usando a -inameopção (ignorar o nome do caso)

encontrar. -iname 'Yelp.js'

Esse era o problema, o nome do arquivo começa com um “y” minúsculo, e estávamos pesquisando com um “Y” maiúsculo.

Subdiretórios recorrentes com find

Uma coisa excelente findé a maneira como ele pesquisa recursivamente nos subdiretórios. Vamos pesquisar qualquer arquivo que comece com “map”.

encontrar . -name "mapa *. *"

Os arquivos correspondentes são listados. Observe que eles estão todos em um subdiretório.

Procurando por diretórios com encontrar

A -pathopção faz com que findprocure diretórios. Vamos procurar um diretório cujo nome não conseguimos lembrar, mas sabemos que termina com as letras “sobre”.

encontrar . -caminho '* sobre'

O diretório é encontrado, é apenas denominado “about” e está aninhado dentro de outro diretório dentro do diretório atual.

Existe uma opção -ipath(ignorar o caminho do caso) que permite a você pesquisar caminhos e ignorar o caso, semelhante à inameopção – discutida acima.

Usando atributos de arquivo com find

find pode procurar arquivos que tenham atributos que correspondam à pista de pesquisa. Por exemplo, você pode procurar arquivos que estão vazios usando a -emptyopção, independentemente de como sejam chamados.

encontrar . -vazio

Todos os arquivos de comprimento zero byte serão listados nos resultados da pesquisa.

A -executableopção encontrará qualquer arquivo que possa ser executado, como um programa ou um script.

encontrar . -executável

Os resultados listam um arquivo chamado “fix_aptget.sh”.

Eles também contêm três diretórios, incluindo ‘.’, O diretório atual. Os diretórios são incluídos nos resultados porque o bit de execução é definido em suas permissões de arquivo. Sem isso, você não seria capaz de entrar (“executar”) esses diretórios.

A opção -type

A -typeopção permite que você pesquise o tipo de objeto que está procurando. Forneceremos o indicador de tipo “f” como parâmetro para a -typeopção porque queremos findpesquisar apenas arquivos.

encontrar . executável -tipo f

Desta vez, os subdiretórios não são listados. O arquivo de script executável é o único item nos resultados.

Também podemos pedir findpara incluir apenas diretórios nos resultados. Para listar todos os diretórios, podemos usar a -typeopção com o indicador de tipo “d”.

encontrar . digite -d

Apenas diretórios e subdiretórios são listados nos resultados.

Usando outros comandos com find

Você pode executar alguma ação adicional nos arquivos encontrados. Você pode ter os arquivos passados, por sua vez, para algum outro comando.

Se precisarmos ter certeza de que não há arquivos executáveis ​​no diretório e subdiretórios atuais, poderíamos usar o seguinte comando:

encontrar . -name "fix_aptget.sh" -exec chmod -x '{}' \;

O comando significa:

  • Procure no diretório atual por um objeto nomeado chamado “fix_aptget.sh”.
  • Se for encontrado, execute o chmodcomando.
  • Os parâmetros que são passados chmodsão -xpara remover as permissões executáveis ​​e '{}'que representam o nome do arquivo encontrado.
  • O ponto e vírgula final marca o fim dos parâmetros que serão transmitidos chmod. Isso deve ser ‘escapado’ precedendo-o com uma barra invertida ‘\’.

Uma vez que este comando foi executado, podemos pesquisar por arquivos executáveis ​​como antes, e desta vez não haverá nenhum arquivo listado.

Para ampliar nossa rede, poderíamos usar um padrão de arquivo em vez do nome de arquivo que usamos em nosso exemplo.

Essa flexibilidade permite que você pesquise os tipos de arquivo especificados, ou com padrões de nome de arquivo, e execute alguma ação nos arquivos correspondentes.

Localizar tem muitas outras opções , incluindo pesquisar arquivos por data de modificação, arquivos pertencentes a um usuário ou grupo, arquivos que são legíveis ou arquivos que têm um conjunto específico de permissões de arquivo.

Os comandos localizar e mlocate

Muitas distribuições de Linux costumavam ter uma cópia do locateincluído com eles. Isso foi substituído pelo mlocatecomando, que era uma versão aprimorada e atualizada do locate.

Quando mlocateé instalado em um sistema, ele modifica o locatecomando para que você realmente use, mlocatemesmo se digitar locate.

As versões atuais do Ubuntu, Fedora e Manjaro foram verificadas para ver se elas tinham versões desses comandos pré-instaladas. Ubuntu e Fedora incluídos. mlocate. Ele precisava ser instalado no Manjaro, com este comando:

sudo pacman -Syu mlocate

No Ubuntu, você pode usar localizar e de forma mlocateintercambiável. No Fedora e no Manjaro você deve digitar locate, mas o comando é executado para você por mlocate.

Se você usar a  --versionopção com, locateverá que o comando que responde é realmente mlocate.

localizar --version

Como locate funciona em todas as distribuições Linux que foram testadas, usaremos locateem nossas explicações abaixo. E é uma letra a menos para digitar.

O banco de dados de localização

A maior vantagem disso locate é a velocidade.

Quando você usa o findcomando, ele sai correndo e realiza uma pesquisa em seu sistema de arquivos. O locatecomando funciona de maneira muito diferente. Ele faz uma pesquisa no banco de dados para determinar se o que você está procurando está no seu computador. Isso torna a pesquisa muito mais rápida.

Claro, isso levanta uma questão óbvia sobre o banco de dados. O que garante que o banco de dados esteja atualizado? Quando mlocate é instalado, ele (geralmente) coloca uma entrada em cron.daily. Isso é executado todos os dias (muito cedo pela manhã) e atualiza o banco de dados.

Para verificar se esta entrada existe, use este comando:

ls /etc/cron.daily/*loc*

Se você não encontrar uma entrada lá, pode configurar uma tarefa automatizada para fazer isso no momento que você escolher.

E se o seu computador não estiver ligado no momento em que o banco de dados deve ser atualizado? Você pode executar manualmente o processo de atualização do banco de dados com o seguinte comando:

sudo atualizadob

Usando localizar

Vamos procurar por arquivos que contêm a string “getlatlong”. Com a localização, a pesquisa procura automaticamente por quaisquer correspondências que contenham o termo de pesquisa em qualquer lugar do nome do arquivo, portanto, não há necessidade de usar curingas.

localizar getlatlong

É difícil transmitir velocidade em uma captura de tela, mas quase imediatamente os arquivos correspondentes são listados para nós.

Dizendo localize quantos resultados você deseja

Às vezes, você pode saber que há muitos arquivos do tipo que está procurando. Você só precisa ver alguns deles. Talvez você apenas queira ser lembrado em qual diretório eles estão e não precisa ver todos os nomes de arquivos.

Usando a -nopção (número), você pode limitar o número de resultados que locateretornarão para você. Neste comando, definimos um limite de 10 resultados.

localizar .html -n 10

locate responde listando os primeiros 10 nomes de arquivo correspondentes que ele recupera do banco de dados.

Contando Arquivos Correspondentes

Se você deseja apenas saber o número de arquivos correspondentes e não precisa saber como eles são chamados ou onde estão em seu disco rígido, use a opção -c (contagem).

localizar -c .html

Portanto, agora sabemos que existem 431 arquivos com a extensão “.html” neste computador. Talvez queiramos dar uma olhada neles, mas pensamos em dar uma olhada e ver quantos havia primeiro. Armados com esse conhecimento, sabemos que precisaremos canalizar a saída less.

localizar .html | Menos

E aqui estão todos eles, ou pelo menos, aqui está o topo da longa lista deles.

Ignorando o caso com localizar

O -i(ignorar locatemaiúsculas e minúsculas ) faz exatamente isso, ele ignora diferenças em maiúsculas e minúsculas entre o termo de pesquisa e os nomes de arquivo no banco de dados. Se tentarmos contar os arquivos HTML novamente, mas fornecermos por engano o termo de pesquisa em maiúsculas, não obteremos resultados.

localizar -c .HTML

Ao incluir a -iopção, podemos  locate ignorar a diferença no caso e retornar nossa resposta esperada para esta máquina, que é 431.

localizar -c -i .HTML

A localização do status do banco de dados

Para ver o status do banco de dados, use a -sopção (status). Isso faz locatecom que sejam retornadas algumas estatísticas sobre o tamanho e o conteúdo do banco de dados.

localizar -s

O qual comando

O whichcomando pesquisa os diretórios em seu caminho e tenta localizar o comando que você está procurando. Ele permite que você determine qual versão de um programa ou comando será executada quando você digitar seu nome na linha de comando.

Imagine que temos um programa chamado geoloc. Sabemos que está instalado no computador, mas não sabemos onde está localizado. Deve estar em algum lugar do caminho porque quando digitamos seu nome, ele é executado. Podemos usar whichpara localizá-lo com este comando:

qual geolocalização

whichrelatórios em que o programa está localizado /usr/local/bin.

Podemos verificar se existem outras cópias do programa em outros locais dentro do caminho usando a -aopção (todos).

qual -a geolocalização

Isso nos mostra que temos o geolocprograma em dois lugares.

Obviamente, a cópia /usr/local/binserá encontrada primeiro pelo shell Bash todas as vezes, portanto, ter o programa em dois lugares não faz sentido.

Remover a versão /usr/bin/geolocirá economizar um pouco da capacidade do disco rígido. Mais importante, também evitará problemas criados por alguém atualizando manualmente o programa e fazendo isso no lugar errado. Então se perguntando por que eles não veem as novas atualizações quando executam o programa.

O comando whereis

O whereiscomando é semelhante ao whichcomando, mas é mais informativo.

Além da localização do comando ou arquivo de programa, whereis também relata onde as páginas man (manuais) e os arquivos de código-fonte estão localizados. Na maioria dos casos, os arquivos de código-fonte não estarão em seu computador, mas se estiverem, whereisfarão um relatório sobre eles.

O executável binário, as páginas do manual e o código-fonte são freqüentemente chamados de “pacote” para esse comando. Se você quiser saber onde os vários componentes do pacote para o  diff comando estão localizados, use o seguinte comando:

onde está diff

whereisresponde listando a localização das diffpáginas do manual e do diffarquivo binário.

Para restringir os resultados para mostrar apenas a localização do binário (na verdade, faça whereisfuncionar como which) use a -bopção (binário).

whereis -b diff

whereis apenas relata a localização do arquivo executável.

Para restringir a pesquisa ao relatório apenas nas páginas de -mmanual, use a opção (manual). Para restringir a pesquisa para relatar apenas os arquivos de código-fonte, use a -sopção (fonte).

Para ver os locais que whereispesquisam, use a -lopção (locais).

whereis -l

Os locais são listados para você.

Agora que sabemos os locais whereisa serem pesquisados, podemos, se escolhermos, restringir a pesquisa a um determinado local ou grupo de locais.

A opção -B(lista binária) restringe a pesquisa de arquivos executáveis ​​à lista de caminhos fornecida na linha de comando. Você deve fornecer pelo menos um local para whereispesquisar. A -f opção (arquivo) é usada para sinalizar o fim do local, por último o início do nome do arquivo.

whereis -B / bin / -f chmod

whereisolha no único lugar que pedimos para pesquisar. É onde o arquivo está localizado.

Você também pode usar a opção -M(lista manual) para restringir pesquisas por páginas de manual aos caminhos fornecidos na linha de comando. A opção -S (lista de fontes) permite restringir a pesquisa de arquivos de código-fonte da mesma maneira.

O comando whatis

O whatiscomando é usado para pesquisar rapidamente nas páginas man (manuais). Ele fornece descrições resumidas de uma linha do termo que você pediu para pesquisar.

Vamos começar com um exemplo simples. Embora pareça o ponto de partida de um profundo debate filosófico, estamos apenas pedindo whatispara nos dizer o que o termo “homem” significa.

o que é homem

whatisencontra duas descrições correspondentes. Ele imprime uma breve descrição para cada partida. Também lista a seção numerada do manual que contém cada descrição completa.

Para abrir o manual na seção que descreve o mancomando, use o seguinte comando:

homem 1 homem

O manual abre na seção man (1), na página para man.

Para abrir o manual na seção 7, na página que discute as macros que você pode usar para gerar páginas de manual, use este comando:

homem 7 homem

A página do manual para as macros do manual é exibida para você.

Pesquisando Em Seções Específicas do Manual

A -sopção (seção) é usada para limitar a pesquisa às seções do manual de seu interesse. Para whatisrestringir a pesquisa à seção 7 do manual, use o seguinte comando. Observe as aspas em torno do número da seção:

o que é - homem "7"

Os resultados referem-se apenas à seção 7 do manual.

Usando whatis com curingas

Você pode usar curingas com whatis. Você deve usar a -wopção (curinga) para fazer isso.

whatis -w char *

Os resultados correspondentes são listados na janela do terminal.

O Comando apropriado

O aproposcomando é semelhante a whatis, mas tem mais alguns sinos e assobios . Ele pesquisa os títulos das páginas do manual e as descrições de uma linha à procura do termo de pesquisa. Ele lista as descrições da página do manual correspondentes na janela do terminal.

A palavra apropos significa “relacionado a” ou “concernente”, e o comando apropostirou seu nome disso. Para pesquisar qualquer coisa relacionada ao groupscomando, podemos usar este comando:

grupos apropriados

apropos lista os resultados na janela do terminal.

Usando mais de um termo de pesquisa

Você pode usar mais de um termo de pesquisa na linha de comando. aproposirá pesquisar por páginas de manual que contenham  qualquer um dos termos de pesquisa.

apropos chown chmod

Os resultados são listados como antes. Nesse caso, há uma única entrada para cada um dos termos de pesquisa.

Usando correspondências exatas

aproposretornará as páginas do manual que contêm o termo de pesquisa, mesmo se o termo estiver no meio de outra palavra. Para fazer aproposretornar apenas correspondências exatas para o termo de pesquisa, use a -eopção (exata).

Para ilustrar isso, usaremos aproposcom grepcomo termo de pesquisa.

apropos grep

Há muitos resultados retornados para isso, incluindo muitos onde grepestá incorporado em outra palavra, como bzfgrep.

Vamos tentar novamente e usar a -eopção (exata).

apropos -e grep

Desta vez, temos um único resultado, para o que estávamos realmente procurando.

Combinando todos os termos de pesquisa

Como vimos anteriormente, se você fornecer mais de um termo de apropospesquisa, pesquisará páginas de manual que contenham  qualquer um dos termos de pesquisa. Podemos mudar esse comportamento usando a -aopção (e). Isso faz com que aproposapenas as correspondências selecionadas tenham todos os tempos de pesquisa nelas.

Vamos tentar o comando sem a -aopção para que possamos ver o que resulta apropos.

apropos crontab cron

Os resultados incluem páginas de manual que correspondem a um ou outro dos termos de pesquisa.

Agora vamos usar a -aopção.

apropos -a cron crontab

Desta vez, os resultados são limitados àqueles que contêm os dois termos de pesquisa.

Ainda mais opções

Todos esses comandos têm mais opções – alguns deles muitas mais opções – e você é incentivado a ler as páginas de manual dos comandos que discutimos neste artigo.

Aqui está um rápido resumo de cada comando:

  • find : fornece um recurso de pesquisa granular e rico em recursos para procurar arquivos e diretórios.
  • Localizar : Fornece uma pesquisa rápida baseada em banco de dados para programas e comandos.
  • que : Pesquisa o $ PATH procurando por arquivos executáveis
  • whereis : Pesquisa o $ PATH procurando por arquivos executáveis, páginas de manual e arquivos de código-fonte.
  • whatis : Pesquisa as descrições de uma linha do homem em busca de correspondências com o termo de pesquisa.
  • apropos : Pesquisa a página de manual com mais fidelidade do que whatis, por correspondências com o termo ou termos de pesquisa.

Procurando mais informações sobre o terminal Linux? Aqui estão 37 comandos que você deve saber .

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

1 ano ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

1 ano ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

1 ano ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

1 ano ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

1 ano ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

1 ano ago