Como encontrar um arquivo por nome no Linux

Encontre seus arquivos facilmente na linha de comando do Linux

Os usuários geralmente tentam encontrar um arquivo usando a GUI. No entanto, às vezes se torna uma tarefa muito tediosa encontrar um arquivo individual na enorme pilha de arquivos em seu sistema. Encontrá-lo de maneira convencional pode ser uma tarefa demorada. Para tornar essa tarefa mais fácil, o Linux oferece certos comandos para fazer esse trabalho para você.

achar é um comando popular usado nos sistemas Linux que pode ajudá-lo a pesquisar vários arquivos com base em seus nomes, tipo, extensão, permissões, proprietário, etc.

Neste tutorial, vamos nos concentrar em encontrar os arquivos por nome. Veremos os diferentes argumentos que podem ser usados ​​com o achar comando. Também aprenderemos sobre o localizar comando que também é uma maneira mais rápida de pesquisar os arquivos por nome.

Sintaxe para achar comando

Usando o achar o comando de maneira adequada pode tornar sua tarefa mais fácil. Encontrar os arquivos de determinado tipo ou extensão ou pesquisar pelo nome será possível se você compreender bem a sintaxe geral deste comando.

A sintaxe geral para o achar comando é o seguinte.

find [search_path] [expression] [options] [find_what]

Tentei simplificar a sintaxe do achar comando para entender melhor o comando.

Vejamos cada atributo da sintaxe para ter uma ideia do significado de cada um deles.

Search_Path: Aqui vem o caminho onde especificamos o caminho de onde desejamos que o sistema comece a pesquisar o arquivo. Em suma, o diretório inicial para iniciar a pesquisa é especificado.

Expressão: Você pode especificar os padrões de pesquisa para o arquivo específico que está pesquisando.

Opções: Você pode usar as opções disponíveis usadas com o achar comando neste espaço.

find_what: Neste atributo, coloque o nome ou parte do nome do arquivo a ser pesquisado.

Vamos ilustrar este comando com um exemplo.

find / home / gaurav / workspace -name "source.c"

Neste comando, estou usando o achar comando para procurar um arquivo “source.c”. Eu pedi especificamente para pesquisar no caminho ‘/ home / gaurav / workspace’. Usando o -nome opção me permite pesquisar o arquivo especificado por ‘source.c’.

Esta é a demonstração mais simples para usar o achar comando.

Pesquisando arquivos no diretório atual

Usando o achar comando em sua forma mais simples é procurar seus arquivos em seu diretório de trabalho atual.

achar .

Este comando exibirá todos os arquivos em seu diretório de trabalho atual. Aqui o '.‘Significa o‘ diretório de trabalho atual ’. A seguir está a saída do meu diretório de trabalho atual. Todos os arquivos presentes neste diretório são listados sem quaisquer filtros

Saída:

. ./context_log.policy ./snap ./snap/couchdb ./snap/couchdb/current ./snap/eclipse ./snap/eclipse/current ./snap/vim-editor ./snap/vim-editor/current ./ snap / vim-editor / common ./snap/vim-editor/1 ./snap/htop ./snap/htop/current ./snap/htop/common ./snap/htop/common/.local ./snap/htop /common/.local/lib ./snap/htop/common/.local/lib/locale ./snap/htop/common/.local/lib/locale/en_IN.UTF-8 ./snap/htop/common/. local / lib / locale / en_IN.UTF-8 / LC_CTYPE

Para pesquisar um arquivo cujo nome aproximado seja conhecido, use o achar comando como mostrado abaixo.

achar . -name [string_from_filename \ *]

Exemplo:

achar . -name contexto \ *

Este comando procura os arquivos que contêm a string ‘contexto’.

Saída:

./context_log.policy ./context.xml ./context_preview.c

Todos os arquivos no diretório atual são listados, contendo a string ‘contexto’ nele.

Agora, o problema surge com este comando quando você tenta tomar a liberdade sobre a distinção entre maiúsculas e minúsculas enquanto digita o nome do arquivo ou a string aproximada.

O Linux é muito cauteloso quanto à diferenciação de maiúsculas e minúsculas e, portanto, há uma boa chance de sua pesquisa falhar. Não vou obter saída para o comando find se usar a string como ‘CONTEXTO’ em vez de ‘contexto’. Mesmo se uma única letra no nome do arquivo estiver em um caso diferente do nome do arquivo original, a pesquisa falhará.

Mas não precisa se preocupar com isso. Você pode simplesmente substituir o -nome opção com o -iname. Isso permite que você pesquise os arquivos independentemente dos casos em que seu nome está. Basta fazer essa simples mudança em seu comando e você ficará bem.

achar . -iname CONT \ *

A saída será a mesma, mesmo se eu tiver usado a string em maiúsculas.

./context_log.policy ./context.xml ./context_preview.c

Pesquisando arquivos em diferentes diretórios

Você pode pesquisar facilmente os arquivos em qualquer diretório no sistema Linux, independentemente do diretório em que está trabalhando no momento.

find [directory_path] -iname [specific_filename]

Exemplo:

find / home / gaurav / tomcat -iname ath.html

Aqui, eu pesquisei por um arquivo específico ‘ath.html’ e não por arquivos semelhantes a esta string. Portanto, a saída será apenas o arquivo específico mencionado acima.

/home/gaurav/tomcat/ath.html

Agora, suponha que não saibamos o nome do arquivo completo, mas apenas a string desse nome de arquivo. Então, podemos pesquisar os arquivos da seguinte maneira.

find / home / gaurav / tomcat -iname ath \ *

Este comando irá procurar por todos os arquivos que incluem a string ‘ath’ no início. Eu usei o -iname opção aqui, então não preciso me preocupar com a distinção entre maiúsculas e minúsculas.

Saída:

/home/gaurav/tomcat/ATHENIAN_ART.html /home/gaurav/tomcat/ath_things.html /home/gaurav/tomcat/ath.html /home/gaurav/tomcat/ATHENIAN_ART.pdf /home/gaurav/tomcat/ATHHHHhow.html

Você também pode usar o comando para pesquisar vários arquivos que terminam com uma extensão semelhante em seu nome.

Exemplo:

find / home / gaurav / tomcat -iname "* .c"

O comando pesquisará todos os arquivos no diretório especificado que contém .c como uma extensão em seu nome de arquivo.

Saída:

/home/gaurav/tomcat/stiil.c /home/gaurav/tomcat/project/temp.c /home/gaurav/tomcat/copy.c /home/gaurav/tomcat/gy.c

Aprendemos sobre o achar comando para pesquisar os arquivos especificados pelo nome do arquivo. Agora, vamos explorar mais um comando que é mais rápido que o convencional achar comando.

localizar visão geral do comando

Existe mais um comando para pesquisar os arquivos em seu sistema que é mais rápido que o achar comando. É o localizar comando. Este comando não vem pré-instalado nas distribuições Linux. Você pode usar as seguintes etapas para baixar e instalar o localizar pacote de comando em seu sistema.

Para sistemas Ubuntu e Debian, usar:

sudo apt update sudo apt install mlocate

Para sistemas Cent Os e Fedora, usar:

sudo yum install mlocate

O comando locate procura o arquivo de acordo com o padrão fornecido na entrada. localizar usa o arquivo de banco de dados para pesquisar os arquivos, este arquivo de banco de dados é gerado pelo updatedb comando.

sudo atualizadob

O tempo necessário para atualizar este arquivo de banco de dados pode variar de usuário para usuário, dependendo dos arquivos em seu sistema.

Usando o localizar comando

Você pode usar o localizar comando da seguinte maneira. Certifique-se de atualizar seu arquivo de banco de dados usando o comando sudo atualizadob.

Sintaxe:

localizar [nome_do_arquivo_ou_parte_do_arquivo]

Este comando iniciará a pesquisa no diretório raiz. Ele retornará a lista de todos os arquivos no sistema que contém o nome do arquivo ou uma parte do nome do arquivo conforme especificado no comando.

Exemplo:

localizar copy.c

Saída:

/home/gaurav/Downloads/git-2.23.0/copy.c /snap/core/9804/usr/lib/python3.5/__pycache__/copy.cpython-35.pyc / snap / core / 9993 / usr / lib /python3.5/__pycache__/copy.cpython-35.pyc /snap/core18/1880/usr/lib/python3.6/__pycache__/copy.cpython-36.pyc / snap / core18 / 1885 / usr / lib / python3 .6 / __ pycache __ / copy.cpython-36.pyc /snap/core20/634/usr/lib/python3.8/__pycache__/copy.cpython-38.pyc /usr/lib/python3.5/__pycache__/copy.cpython -35.pyc /usr/lib/python3.6/__pycache__/copy.cpython-36.pyc /usr/share/icons/MacBuntu-OS/apps/128/copy.com.png

A linha destacada mostra que o arquivo exato ‘copy.c’ foi encontrado. Junto com este resultado, alguns outros arquivos também são exibidos, os quais contêm ‘copy.c’ como parte do nome do arquivo.

Para evitar a confusão de outros arquivos indesejados e encontrar apenas o arquivo desejado, você pode usar o comando locate da seguinte maneira.

localizar -b '\ nome do arquivo'

Exemplo:

locate -b '\ copy.c'

Saída:

/home/gaurav/Downloads/git-2.23.0/copy.c

O arquivo específico mencionado nos critérios de pesquisa é listado junto com o caminho do diretório onde está localizado.

Usando o localizar pode parecer um pouco complicado, mas é um método mais rápido para pesquisar arquivos quando você não sabe a localização exata desse arquivo. A recuperação dos arquivos torna-se muito rápida quando você atualiza o arquivo de banco de dados que o comando locate usa.

Conclusão

Neste breve tutorial, aprendemos sobre dois comandos importantes, achar e localizar. Agora você pode pesquisar arquivos facilmente em seu sistema sem se perder na pilha de arquivos. O uso desses comandos certamente economizará tempo e será eficiente para a sua tarefa de pesquisa de arquivos.