Encontre exemplos do Ubuntu. Encontrando arquivos no Linux ou aprendendo o comando find

Lar / Discos rígidos

Problema de pesquisa arquivos necessários ou pastas foi, é e sempre será relevante. As pessoas esquecem constantemente onde exatamente salvaram o arquivo Crap.doc ou Super-music.mp3. Portanto, independentemente do seu sistema operacional, a busca por arquivos ou diretórios sempre estará em demanda, seja no Linux, Windows ou MacOS X. As ferramentas de busca serão simplesmente diferentes. A pesquisa no Linux pode ser dividida em duas categorias: gráfica e console. Vamos começar com o orgulho de todos os lunixóides - o Terminal. Existe um programa maravilhoso para pesquisar no Linux chamado encontrar.
O formato do comando find é:
encontre o caminho para o diretório no qual deseja pesquisar - opções (chaves)
onde path é o diretório no qual pesquisar. Os seguintes caminhos podem ser especificados:

.
– pesquise no diretório atual;
/ – pesquise no diretório raiz, ou seja, em todo o sistema;
~ – pesquise no diretório inicial.

Embora o caminho, é claro, possa e será diferente. Acima estão apenas os caminhos padrão.
Portanto, as opções mais importantes do comando find são assim: nome
— pesquise arquivos por nome; usuário
— procure arquivos que pertencem ao usuário especificado; grupo
— pesquise arquivos que pertencem a um grupo específico; permanente
— procure arquivos com o modo de acesso especificado; tipo

— pesquise arquivos de algum tipo.

  • Existem também muitos tipos:
  • b – arquivo de bloco especial;
  • d – diretório;
  • c – arquivo de símbolos especiais;
  • f – arquivo normal;
  • l – link simbólico;
  • p – tubo nomeado;

s – soquete.
Tamanho n - busca por arquivos cujo tamanho seja n unidades;

-mtime -n +n – pesquisa arquivos cujo conteúdo mudou há menos de (-) ou mais de (+) dias.
E agora alguns exemplos de uso do comando find.
A opção mais comumente usada é -name, que procura arquivos por nome.

Por exemplo, o comando:

encontre ~ Music -name "*.mp3"

irá procurar todos os arquivos (símbolo *) que possuem a extensão .mp3 na pasta Música, que está localizada em seu diretório inicial.

encontre / -nome "*.pdf"

Este comando irá procurar arquivos com extensão .pdf em todos os diretórios onde você tem acesso permitido. Se o programa não conseguir entrar em alguns diretórios do sistema, ele irá avisá-lo sobre isso. E se você ainda precisar visualizar todos os diretórios por completo, use os direitos de superusuário:

sudo localizar / -nome "*.pdf"

listará os arquivos em seu diretório inicial começando com as letras Foto.

A opção `-name' distingue entre letras maiúsculas e minúsculas; Para ignorar estes critérios durante a pesquisa, você precisa usar a opção ‘-iname’. Em seguida, o programa encontrará todos os arquivos que serão compostos pelas letras: Foto, foto ou FOTO.

Se você quiser que o resultado da pesquisa seja salvo em arquivo de texto, o comando terá o seguinte formato:

encontre ~ -name "Foto*" > results.txt

Se você souber o nome completo do arquivo, o comando seria:

encontrar / -nome .perfil

EM nesse caso Todo o sistema será procurado pelo arquivo .profile oculto.

Você pode procurar um arquivo se souber parte de seu nome. Neste caso o comando ficará assim:

find /home/dm/Music/Clips/ -name "*uniform*"

Se você deseja encontrar arquivos que começam com determinadas letras (por exemplo, de a a c), é melhor usar expressões regulares, que são muito convenientes de usar:

encontrar / -nome "*"

Este comando será capaz de encontrar todos os arquivos do seu sistema que começam com as letras de a a c.

Procure arquivos com modos de acesso específicos

Se você deseja encontrar arquivos que possuem determinados modos de acesso, a opção -perm pode ajudá-lo com isso. Por exemplo, vamos encontrar arquivos cujo modo de acesso seja 775 e estejam localizados no diretório atual:

encontrar . -perm 775

Pesquise arquivos por usuário ou grupo.

Para encontrar um arquivo que pertence a um usuário específico, basta executar o seguinte comando:

encontrar / -user comp

Este comando encontrará arquivos no sistema que pertencem ao usuário comp.
E para encontrar arquivos que pertencem a um grupo específico (por exemplo grupo2), execute o comando:

encontrar / -grupo grupo2

Para encontrar arquivos de usuários ou grupos inexistentes, você precisa usar as opções -nouser e -nogroup:

encontrar / -nouser

encontrar / -nogrupo

Procure arquivos de um tipo específico

O comando find possui outro recurso útil: ele pode localizar arquivos de um tipo específico. Para fazer isso, use a opção -type. Vamos encontrar links simbólicos no diretório /etc:

encontre /etc -type l

Vamos encontrar uma lista de diretórios que estão presentes na pasta /mnt/raid

encontre /mnt/raid -type d

Pesquise arquivos por tamanho.

A opção -size permite que você encontre arquivos do tamanho que você precisa.

encontrar . -tamanho 2000k

Este comando localizará e exibirá arquivos com 2 megabytes de tamanho e localizados no diretório atual. E se, por exemplo, você precisar encontrar arquivos menores que 500 kilobytes, então neste caso o comando será assim:

encontrar . -tamanho -500k

Se você precisar encontrar arquivos maiores que 900 megabytes, o comando será o seguinte:

encontrar / -tamanho +900M

Procurando arquivos usando a opção -mtime

A opção -mtime permite que você encontre arquivos que foram alterados em um determinado período de tempo.
Por exemplo, temos a tarefa de encontrar arquivos que estão localizados na pasta /home/dm/Video e que foram alterados nos últimos 10 dias.

encontre /home/dm/Video -mtime +10

Se você precisar do contrário, por exemplo, para encontrar arquivos que não foram alterados há uma semana, o comando seria o seguinte:

encontre /home/dm/Vídeo -7

No próximo artigo escreverei sobre ferramentas gráficas de busca no Ubuntu Linux.

O Linux possui um comando muito poderoso e útil para pesquisar arquivos - o comando encontrar. Possui muitas opções de busca de arquivos, porém às vezes causa dificuldades para iniciantes, principalmente devido à sua sintaxe.

Um exemplo simples de uso do comando find

Primeiro, vejamos um exemplo simples de uso do comando find para pesquisar arquivos chamados config em seu computador. Procuraremos os arquivos de configuração começando no diretório raiz /. Para fazer isso, você precisa executar o comando como root para ter permissões suficientes, caso contrário você receberá mensagens de “Permissão negada”. Então vamos executar o comando:

Localizar / -nome configuração -print

O comando significa o seguinte: procure por arquivos chamados config (-name config), começando no diretório / (o primeiro parâmetro do comando find) e imprima os nomes dos arquivos na tela (argumento -print). Observo que a busca é recursiva, ou seja, ao pesquisar, todos os subdiretórios são pesquisados. Como você pode ver, tudo é simples. Agora vamos dar uma olhada na sintaxe do comando e passar para uma visão geral de seus principais argumentos.

encontrar sintaxe de comando

A sintaxe geral do comando find, que você pode encontrar em guia de referência, pode não parecer totalmente simples, então darei a você um mais fácil de ler:

Encontre [caminho] [opções] [critérios de pesquisa] [ações em arquivos]

Caminho

O caminho de pesquisa pode ser absoluto ou relativo, ou uma lista de caminhos separados por um espaço.

Opções

As opções do comando Localizar são listadas começando com um caractere "-" seguido do nome da opção. Vejamos as principais opções.

Critérios de pesquisa

O comando find pode ter vários critérios de pesquisa (também chamados de testes). Cada critério representa uma condição de teste específica que retorna true ou false . Isso pode ser comparado às condições de uma instrução if na programação. À medida que o comando find processa cada arquivo, ele verifica cada critério por vez e, se o próximo critério retornar false , o comando find passa para o próximo arquivo. O comando find possui vários critérios, consideraremos apenas alguns deles.

-atime NO arquivo foi acessado pela última vez há N dias.
-mhora NO arquivo foi modificado pela última vez há N dias.
-padrão de nomeNome do arquivo (modelo de nome) sem especificar um caminho. Recomenda-se sempre colocar o padrão entre aspas.
-outro_arquivo mais recenteO arquivo foi modificado posteriormente a other_file.
-tamanho [±] NO tamanho do arquivo é igual a N blocos, se +N for especificado, então o tamanho do arquivo é maior que N, -N é menor. O caractere após N indica o tamanho do bloco. b - 512 bytes, c - byte, w - 2 bytes, k - quilobyte, M - megabyte, G - gigabyte.
-tipo CTipo de arquivo C. Os valores mais comumente usados ​​​​para C: d - diretório, f - arquivo.
-user Nome_do_usuárioO arquivo pertence a um usuário chamado UserName.

Exemplos de uso do comando find usando critérios

Encontre arquivos regulares (não diretórios) no diretório atual cujos nomes começam com o caractere “~”.

Encontrar. -type f -nome "~*" -print

Encontre arquivos no diretório atual que foram modificados mais recentemente que file.bak .

Encontrar. -arquivo mais recente.bak -type f -print

Operadores

Os critérios podem ser combinados usando operadores. A seguir estão os operadores em ordem decrescente de precedência.

EM caso geral Ao utilizar operadores, os critérios são verificados em ordem de prioridade. Você pode alterar a ordem usando parênteses. Os parênteses devem ser separados por uma barra invertida.

Exemplos de uso do comando find usando operadores

Encontre arquivos no diretório atual que começam com o símbolo “~” ou “temp” e são arquivos regulares (-type f) e não diretórios.

Encontrar. \(-name "~*" -ou -name "temp*" \) -type f -print

Encontre no diretório atual (sem processar subdiretórios - -maxdeph 1) arquivos regulares (-file f) maiores que 600 megabytes e menores que 1 gigabyte (-size) ou arquivos cujo nome termina em “.mpeg” (-name).

Encontrar. -maxprofundidade 1 \(\(-tamanho +600M -e -tamanho -1G \) -ou -nome "*.mpeg" \) -e -tipo f

Ações em arquivos

Quando o comando find é executado, você pode realizar várias ações nos arquivos encontrados. Vejamos os principais.

Em comandos executáveis, você pode usar o parâmetro () como argumento, que é substituído pelo caminho para o arquivo atual.

Exemplos de uso do comando find usando ações

Encontre arquivos regulares maiores que 1000 bytes no diretório atual e execute o comando ls -dils neles (ação ls).

Encontrar. -tamanho +1000c -tipo f -ls

Encontre arquivos regulares no diretório atual começando com o caractere til “~” e para cada arquivo emita uma solicitação para excluí-lo (para executar o comando rm).

Encontrar. -nome "~*" -tipo f -ok rm()\;

Conclusão

Neste artigo discutimos um assunto muito importante e útil Comando Linux find , que oferece possibilidades quase ilimitadas para pesquisar arquivos usando muitos critérios e padrões. E usando comandos (ações) você pode pesquisar arquivos e realizar qualquer operação neles.

    Encontre o arquivo pelo nome. Tal pesquisa simples realizado usando o utilitário find. O comando abaixo irá procurar um arquivo no diretório atual e todos os seus subdiretórios.

    encontre -iname "nome do arquivo"

    • Digite -iname em vez de -name para ignorar maiúsculas e minúsculas no nome do arquivo inserido. O comando -name diferencia maiúsculas de minúsculas.
  1. Comece a pesquisar no diretório raiz. Para executar uma pesquisa em todo o sistema, adicione o modificador / à consulta. Neste caso, o comando find irá procurar o arquivo em todos os diretórios, começando pelo raiz.

    encontrar / -iname "nome do arquivo"

    • Você pode começar a pesquisar em um diretório específico; para fazer isso, substitua / pelo caminho do diretório, por exemplo /home/max .
    • Pode ser usado. em vez de / para procurar o arquivo apenas no diretório atual e seus subdiretórios.
  2. Use o símbolo curinga.* para encontrar arquivos cujo nome corresponda a parte da solicitação. Você pode usar o caractere curinga * para localizar um arquivo cujo nome completo é desconhecido ou para localizar todos os arquivos com uma extensão específica.

    encontre /home/max -iname "*.conf"

    • Este comando encontrará todos os arquivos com extensão .conf na pasta Max do usuário (e suas subpastas).
    • Use este comando para localizar todos os arquivos cujos nomes correspondem a parte da consulta. Por exemplo, se você tiver muitos arquivos relacionados ao WikiHow em seu computador, encontre todos os arquivos digitando "*wiki*" .
  3. Facilite o gerenciamento dos resultados da pesquisa. Se houver muitos resultados de pesquisa, será difícil encontrar o arquivo necessário entre eles. Use o | para que os resultados da pesquisa sejam filtrados pelo comando less. Isso tornará mais fácil navegar e filtrar os resultados da pesquisa.

    encontre /home/max -iname "*.conf" |

    menos Use modificadores para mostrar apenas determinados itens nos resultados da pesquisa. Você pode pesquisar arquivos regulares (f), diretórios (d), links simbólicos (l), dispositivos de E/S baseados em caracteres (c) e dispositivos de bloco (b).

    encontre / -type f -iname "nome do arquivo"

  4. Filtre os resultados da pesquisa por tamanho de arquivo. Se você tiver muitos arquivos com nomes semelhantes em seu computador, mas souber o tamanho do arquivo que está procurando, filtre os resultados da pesquisa por tamanho de arquivo.

    encontrar / -size +50M -iname "nome do arquivo"

    • Este comando encontrará todos os arquivos maiores que 50 MB. Use o modificador + ou - para indicar um aumento ou diminuição no tamanho. Se não houver modificador + ou -, o comando encontrará arquivos cujo tamanho corresponda exatamente ao tamanho especificado.
    • Você pode filtrar os resultados da pesquisa por bytes (c), quilobytes (k), megabytes (M), gigabytes (G) ou blocos de 512 bytes (b). Observe que os modificadores mostrados diferenciam maiúsculas de minúsculas.
  5. Use operadores lógicos (operadores booleanos) para combinar filtros de pesquisa. Você pode usar os operadores -and , -or , -not para combinar diferentes consultas de pesquisa em um pedido.

    find /travelphotos -type f -size +200k -not -iname "*2015*"

    • Este comando encontrará na pasta Travelphotos arquivos maiores que 200 kB e que não tenham o número 2015 em seus nomes.

Um dos problemas mais comuns que os usuários iniciantes do Linux encontram é encontrar os arquivos de que precisam. Este tutorial aborda o uso do comando find, que permite resolver esse problema e pesquisar arquivos com diversos filtros e parâmetros.

Pesquisar por nome

Esta é a maneira mais óbvia de pesquisar arquivos. Para pesquisar por nome, digite:

Encontre -nome "nome"

Esta consulta fará distinção entre maiúsculas e minúsculas, o que significa que “arquivo” e “Arquivo” serão tratados como nomes diferentes.

Para pesquisar por nome, sem distinção entre maiúsculas e minúsculas, digite:

Encontre -iname "nome"

Se precisar encontrar todos os arquivos que não correspondem a um determinado padrão, você pode inverter a pesquisa usando a opção “-not” ou “!”. Ao usar “!” Você precisa escapar do caractere para que o bash não tente interpretá-lo antes de find ser executado:

Encontre -not -name "nome a ser excluído"

Encontrar\! -name "nome a ser excluído"

Pesquisar por tipo

Você pode especificar o tipo de arquivo que precisa encontrar usando o parâmetro -type. Funciona assim:

Solicitação Find -type type_descriptor

Aqui estão os descritores de tipo mais comuns:

f: arquivo normal
d: diretório
eu: ligação simbólica
c: dispositivos de personagem
b: bloquear dispositivos

Por exemplo, se precisarmos encontrar todos os dispositivos de caracteres no sistema, podemos executar o seguinte comando:

E desta forma podemos procurar todos os arquivos que terminam em “.conf”:

Encontre / -type f -name "*.conf"

Pesquise por tempo e tamanho

Find oferece várias maneiras de filtrar resultados por tamanho e tempo.

Pesquise por tamanho

A filtragem por tamanho é feita através do parâmetro “-size”.

Após o valor do tamanho, você deve especificar um sufixo indicando as unidades de medida. Aqui estão algumas das opções mais comuns:

c: bytes
k: quilobytes
M: megabytes
G: gigabytes
b: blocos de 512 bytes

Para encontrar todos os arquivos com exatamente 100 bytes de tamanho, digite:

Encontre / -tamanho 100c

Para pesquisar todos os arquivos menores que 100 bytes, podemos usar o seguinte formulário:

Encontrar / -tamanho -100c

Para pesquisar arquivos maiores que 500 megabytes, você pode usar o seguinte comando:

Encontrar / tamanho +500M

Pesquise por horário

O Linux armazena tempo de acesso, horário de modificação e horário de modificação.

  • Hora de acesso: a última vez que o arquivo foi lido ou gravado.
  • Hora da modificação: A hora em que o conteúdo do arquivo foi modificado pela última vez.
  • Hora da modificação: a hora em que os metadados no inode do arquivo foram modificados pela última vez.

Para filtrar por esses valores, podemos utilizar as opções "-atime", "-mtime" e "-ctime", respectivamente, bem como os símbolos de mais e menos para encontrar arquivos com horário anterior ou posterior, semelhante à filtragem por tamanho.

O valor destes parâmetros indica há quantos dias a pesquisa deve ser realizada.

Para procurar arquivos cujo conteúdo foi alterado ontem, digite:

Encontrar / -mtime 1

Se precisarmos de arquivos que foram acessados ​​ontem e posteriormente, podemos usar o comando:

Encontre / -atime -1

Para recuperar arquivos cujos metadados foram alterados há mais de três dias, use o seguinte comando:

Encontrar / -ctime +3

Existem também opções adicionais, que permite especificar minutos em vez de dias. Este comando lista os arquivos modificados no último minuto:

Encontre / -mmin -1

Além disso, find pode comparar com um determinado arquivo e retornar todos os arquivos mais recentes:

Encontre / -newer meu arquivo

Pesquise por proprietário e permissões

Usando os parâmetros "-user" e "-group", você pode pesquisar arquivos por proprietário ou grupo, respectivamente. Para encontrar o arquivo "syslog" do usuário, você precisa digitar:

Localizar /-user syslog

Da mesma forma, você pode procurar arquivos no grupo “sombra”:

Localizar / -grupo sombra

Você também pode pesquisar arquivos com permissões específicas.

Se precisarmos combinar um conjunto preciso de permissões, o seguinte formulário será usado:

Encontrar / -perm 644

Se você precisar encontrar todos os arquivos com resoluções não inferiores às especificadas, você precisará inserir:

Encontrar / -perm -644

Todos os arquivos com permissões adicionais atenderão a este critério. Por exemplo, neste caso corresponderá a um arquivo com permissões “744”.

Filtrando por profundidade

Para esta seção, precisaremos criar uma estrutura de diretórios de três níveis no diretório temporário com dez diretórios no primeiro nível. Cada diretório (inclusive o temporário) terá dez subdiretórios e dez arquivos.

Vamos criar a estrutura executando os seguintes comandos:

Mkdir -p ~/teste/nível1dir(1..10)/nível2dir(1..10)/nível3dir(1..10) toque ~/teste/(arquivo(1..10),nível1dir(1..10 )/(arquivo(1..10),level2dir(1..10)/(arquivo(1..10),level3dir(1..10)/arquivo(1..10)))) cd ~/teste

Você pode usar os comandos ls e cd para verificar a estrutura. Tendo entendido a organização, você precisa retornar ao diretório de teste:

CD ~/teste

Agora vamos tentar encontrar arquivos específicos nesta estrutura. Vamos começar com um exemplo de pesquisa regular por nome:

Encontre -nome do arquivo1

Existem muitos resultados. Se traduzirmos a saída para um contador, veremos que existem 1111 desses arquivos no total:

Encontre -nome do arquivo1 | wc-l 1111

Na maioria dos casos, esses resultados são redundantes. Vamos tentar restringir a pesquisa.

Você pode definir a profundidade máxima de pesquisa no diretório de pesquisa de nível superior:

Encontre -maxprofundidade número -nome nome

Para encontrar "file1" apenas em diretórios "level1" e superiores, você precisa especificar uma profundidade máxima de 2 (1 para o diretório de nível superior e 1 para diretórios de nível 1):

Encontre -maxprofundidade 2 -nome do arquivo1

Se você encontrar um erro, destaque um trecho de texto e clique Ctrl+Enter.

Se você trabalha frequentemente em linha de comando em um computador ou servidor onde não existe nenhum shell gráfico, mais cedo ou mais tarde você se deparará com a tarefa de procurar arquivos. Felizmente, o Linux já possui um comando integrado que permite localizar um arquivo no sistema.

Hoje falaremos sobre o uso do comando find - acredite, vale a pena aprender como trabalhar com esta ferramenta poderosa e conveniente.

Como usar o comando localizar

Em termos simples, a sintaxe básica do comando find é a seguinte:

Encontre o nome do arquivo dos parâmetros /caminho

Vamos entender as capacidades da equipe

Procure um arquivo pelo nome

O primeiro parâmetro é o caminho. Se você não tem ideia de onde o arquivo pode estar escondido, substitua o caminho por / - isso é o suficiente. No entanto, pesquisar em todo o disco pode ser bastante demorado e, se você souber onde o arquivo pode estar localizado, especifique a pasta a partir da qual iniciar a pesquisa (por exemplo, ~ para pesquisar na pasta pessoal do usuário).

Agora vamos passar para os parâmetros de pesquisa. Existem duas opções para pesquisar um arquivo por nome:

  • nome - pesquise o nome do arquivo com distinção entre maiúsculas e minúsculas
  • iname - pesquisa nome de arquivo sem distinção entre maiúsculas e minúsculas

É preciso lembrar que no Linux o caso do nome do arquivo é importante, e se você precisar encontrar, por exemplo, o arquivo Ubuntu.txt, o seguinte comando não dará nenhum resultado:

Encontre / -nome ubuntu.txt

Mas você pode usar o comando iname e realizar uma pesquisa sem distinção entre maiúsculas e minúsculas:

Encontre / -iname ubuntu.txt

Pesquisar por tipo

O comando find permite pesquisar mais do que apenas arquivos. Aqui estão os tipos de identificadores suportados pela pesquisa:

  • f - arquivo normal
  • d - diretório
  • eu - link simbólico
  • c - dispositivo de personagem
  • b - dispositivo de bloco

Por exemplo, para pesquisar todos os diretórios dentro diretório inicial usuário atual cujo nome começa com “config”, execute o seguinte comando:

Encontre ~ -type d -name config*

Enviando resultados de pesquisa para um arquivo

A conveniente função de enviar o resultado de um comando para um arquivo será extremamente útil se houver muitos resultados de pesquisa ou se houver necessidade de trabalhar com eles posteriormente. Por exemplo, para salvar uma lista de todos os arquivos de configuração encontrados em um arquivo conf_search, execute o seguinte comando:

Encontre /etc -type f -name “*.conf” > conf_search

Pesquise arquivos por tamanho

Esta é uma opção muito útil quando você está ficando sem espaço em disco e precisa descobrir para onde ele foi. Por exemplo, para localizar arquivos maiores que 1000 MB, execute o seguinte comando:

Encontrar / tamanho +1000M

As seguintes abreviações de tamanho podem ser usadas:

  • c-bytes
  • k - quilobytes
  • M - megabytes
  • G - gigabytes
  • b - blocos de 512 bytes

Estas são apenas algumas maneiras de usar um comando poderoso. Mais maneiras podem ser encontradas no manual executando o comando

© 2024 ermake.ru - Sobre reparo de PC - Portal de informações