Encontrar um arquivo em um sistema Linux pode ser difícil se você não souber como. A melhor maneira de localizar arquivos é utilizar vários comandos de terminal diferentes. Dominar esses comandos pode dar a você controle total sobre seus arquivos, e eles são muito mais poderosos do que as funções de pesquisa simples em outros sistemas operacionais.
Passos
Método 1 de 3: usando "localizar"
Etapa 1. Instale o
localizar funcionalidade.
O comando locate geralmente funciona muito mais rápido do que find, porque funciona a partir de um banco de dados de sua estrutura de arquivos. Nem todas as distribuições do Linux vêm com a funcionalidade de localização instalada, portanto, digite os seguintes comandos para tentar instalá-la:
- Digite sudo apt-get update e pressione ↵ Enter.
- Você pode instalá-lo no Debian e Ubuntu assim: Digite sudo apt-get install mlocate e pressione ↵ Enter. Se o locate já estiver instalado, você verá a mensagem mlocate já é a versão mais recente.
- No Arch Linux, use o gerenciador de pacotes pacman: pacman -S mlocate
- Para Gentoo, use emerge: emerge mlocate
Etapa 2. Atualize seu
localizar base de dados.
O comando locate não será capaz de encontrar nada até que seu banco de dados seja construído e atualizado. Isso acontece automaticamente diariamente, mas você também pode atualizá-lo manualmente. Você precisará fazer isso se quiser começar a usar localizar imediatamente.
Digite sudo updatedb e pressione ↵ Enter
Etapa 3. Use
localizar para realizar pesquisas simples.
O comando locate é rápido, mas não tem tantas opções quanto o comando find. Você pode realizar uma pesquisa básica de arquivos da mesma maneira que o comando find.
localizar -i "*.jpg"
- Este comando irá pesquisar em seu sistema inteiro por arquivos com a extensão.jpg. O caractere curinga * funciona da mesma forma que com o comando find.
- Como o comando find, o -i ignora o caso da sua consulta.
Etapa 4. Limite os resultados da pesquisa
Se suas pesquisas estão retornando muitos resultados para manipular, você pode reduzi-los usando a opção -n, seguido pelo número de resultados que deseja exibir.
localizar -n 20 -i "*.jpg"
- Apenas os primeiros 20 resultados que correspondem à consulta serão exibidos.
- Você também pode usar o | pipe para enviar os resultados para o less para facilitar a rolagem.
Método 2 de 3: usando "encontrar"
Etapa 1. Pesquise um arquivo por seu nome
Esta é a pesquisa mais básica que você pode realizar usando o comando find. O comando a seguir pesquisará a consulta no diretório atual e em quaisquer subdiretórios.
find -iname "nome do arquivo"
Usar -iname em vez de -name ignora o caso da sua consulta. O comando -name faz distinção entre maiúsculas e minúsculas
Etapa 2. Defina a pesquisa para iniciar no diretório raiz
Se você deseja pesquisar em todo o sistema, pode adicionar o modificador / à consulta. Isso dirá ao find para pesquisar todos os diretórios, começando no diretório raiz.
find / -iname "nome do arquivo"
- Você pode iniciar a pesquisa em um diretório específico substituindo / por um caminho de diretório, como / home / pat.
- Você pode usar um. em vez de / para forçar a pesquisa a ser realizada apenas no diretório e subdiretórios atuais.
Etapa 3. Use o caractere curinga
* para pesquisar qualquer coisa que corresponda à parte da consulta.
O caractere curinga * pode ser útil para encontrar algo se você não souber o nome completo ou se quiser encontrar tudo com uma extensão específica.
find / home / pat -iname "*.conf"
- Isso retornará todos os arquivos.conf na pasta do usuário de Pat (e subdiretórios).
- Você também pode usá-lo para encontrar tudo que corresponda a parte do nome do arquivo. Por exemplo, se você tiver muitos documentos relacionados ao wikiHow, poderá encontrá-los todos digitando "* wiki *".
Etapa 4. Torne os resultados da pesquisa mais fáceis de gerenciar
Se você estiver obtendo muitos resultados de pesquisa, pode ser difícil examiná-los. Use o | caractere e enviar os resultados da pesquisa para o programa de filtragem "menos". Isso pode permitir que você role e filtre os resultados com muito mais facilidade.
find / home / pat -iname "*.conf" | menos
Etapa 5. Encontre tipos específicos de resultados
Você pode usar modificadores para retornar apenas tipos específicos de resultados. Você pode pesquisar arquivos regulares (f), diretórios (d), links simbólicos (l), dispositivos de caractere (c) e dispositivos de bloco (b) usando o modificador correto.
find / -type f -iname "nome do arquivo"
Etapa 6. Filtre os resultados da pesquisa por tamanho
Se você tem muitos arquivos com nomes semelhantes, mas sabe o tamanho que está procurando, pode filtrar nossos resultados por tamanho.
find / -size + 50M -iname "nome do arquivo"
- Isso retornará resultados de 50 megabytes ou mais. Você pode usar + ou - para pesquisar tamanhos maiores ou menores. A omissão de + ou - irá procurar arquivos exatamente do tamanho especificado.
- Você pode filtrar por bytes (c), kilobytes (k), megabytes (M), gigabytes (G) ou blocos de 512 bytes (b). Observe que o sinalizador de tamanho diferencia maiúsculas de minúsculas.
Etapa 7. Use operadores booleanos para combinar filtros de pesquisa
Você pode usar os operadores -and, -or e -not para combinar diferentes tipos de pesquisas em uma.
find / travelphotos -type f -size + 200k -not -iname "* 2015 *"
O comando encontrará no diretório "travelphotos" arquivos com tamanho superior a 200 kilobytes, mas não com "2015" no nome do arquivo
Etapa 8. Pesquise arquivos por proprietário ou permissões
Se estiver tentando encontrar um arquivo específico de propriedade de um usuário ou arquivos com certas permissões, você pode restringir a pesquisa.
find / -user pat -iname "nome do arquivo" find / -group users -iname "nome do arquivo" find / -perm 777 -iname "nome do arquivo"
Os exemplos acima irão pesquisar os usuários, grupos ou permissões especificados para a consulta. Você também pode omitir a consulta de nome de arquivo para retornar todos os arquivos que correspondem a esse tipo. Por exemplo, find / -perm 777 retornará todos os arquivos com as permissões 777 (sem restrições)
Etapa 9. Combine os comandos para realizar ações quando os arquivos forem encontrados
Você pode combinar o comando find com outros comandos para que você possa executá-los nos arquivos que são retornados pela consulta. Separe o comando find e o segundo comando com o sinalizador -exec e, a seguir, termine a linha com {};
achar. -tipo f -perm 777 -exec chmod 755 {};
Isso pesquisará o diretório atual (e todos os subdiretórios) por arquivos que tenham 777 permissões. Em seguida, ele usará o comando chmod para alterar as permissões para 755
Método 3 de 3: Pesquisando Texto em Arquivos
Etapa 1. Use o
grep comando para pesquisar strings de texto dentro de arquivos.
Se você estiver procurando por um arquivo que contém uma certa frase ou string de caracteres, você pode usar o comando grep. Um comando grep básico é formatado da seguinte maneira:
grep -r -i "consulta de pesquisa" / caminho / para / diretório /
- O -r define a pesquisa como "recursiva", portanto, ele pesquisará o diretório atual e todos os subdiretórios por qualquer arquivo que contenha a string de consulta.
- O -i indica que a consulta não faz distinção entre maiúsculas e minúsculas. Se você quiser forçar a pesquisa a prestar atenção ao caso, omita o operador -i.
Etapa 2. Corte o texto extra
Ao realizar uma pesquisa grep como acima, você verá o nome do arquivo junto com o texto com a consulta correspondente destacada. Você pode ocultar o texto correspondente e apenas exibir os nomes e caminhos dos arquivos incluindo o seguinte:
grep -r -i "consulta de pesquisa" / caminho / para / diretório / | cut -d: -f1
Etapa 3. Ocultar mensagens de erro
O comando grep retornará um erro quando tentar acessar pastas sem as permissões corretas ou executar em pastas vazias. Você pode enviar as mensagens de erro para / dev / null, o que as ocultará da saída.
grep -r -i "consulta de pesquisa" / caminho / para / diretório / 2> / dev / null