
Como encontrar arquivos em Linux
Lembrar onde um arquivo específico está localizado em sua instalação Linux pode ser difícil e manualmente pesquisando uma grande árvore é um processo muito cansativo. Portanto, como fazer pesquisas em Linux? Felizmente, Linux oferece algumas ferramentas muito fácil de usar para encontrar arquivos em toda a sua distribuição inteira.
DIFICULDADE EM | Basic - 1 | Médio - 2 | Avançado: 3 |
TEMPO NECESSÁRIO | 15 min |
PRODUTOS RELACIONADOS | Servidores dedicados ou VPS baseadas em Linux Baseadas em Linux hospedagem compartilhada com SSH ativado |
Como encontrar arquivos em Linux
O comando Localizar é a ferramenta principal usada para localizar arquivos em qualquer lugar em sua máquina. Básico de no máximo, encontre é executado usando a seguinte sintaxe:
path
e flags
são ambos opcional, então por padrão localizar será recursiva retorno o caminho de todos os arquivos dentro da pasta atual e subdiretórios:
./.ssh
./.ssh/authorized_keys
./.monit.state
./.aptitude
./.aptitude/cache
./.aptitude/config
./.profile
./.psql_history
./.gem
...
Como encontrar o nome
Procurar arquivos com o uso de um determinado nome a -name
sinalizador seguido o texto de pesquisa. Por exemplo:
./misc/foo
Que encontra todos os arquivos no diretório atual com o nome exato foo. Nesse caso ele encontrado somente um arquivo no meu diretório de diversos. Usando o -iname
em vez disso, o sinalizador usa uma pesquisa diferencia maiusculas de minúsculas:
./misc/foo
Usando um asterisco (*) permite que você pesquisar usando caracteres curinga:
./misc/foobar.txt
./misc/foobar.sh
./misc/foo
./misc/foobar
Encontrar por local
Pesquisando fora do diretório atual frequentemente é obrigatório e facilmente pode ser realizado usando a opção de caminho imediatamente após o comando Localizar.
Por exemplo, para procurar arquivos em todo o sistema, use um / path
opção:
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar
/usr/lib/node_modules/npm/node_modules/semver/foot.js
/usr/share/automake-1.14/am/footer.am
/usr/share/doc/xml-core/examples/foo.postrm
...
Você pode restringir o caminho de pesquisa para baixo conforme necessário, nesse caso encontrar os arquivos mesmos localizados dentro do diretório de raiz/diversos:
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar
Você pode usar até mesmo vários paths
em seu comando para pesquisar em dois ou mais locais específicos. Aqui nós estão pesquisando o raiz/diversos e os diretórios /usr/share/doc:
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar
/usr/share/doc/xml-core/examples/foo.postrm
/usr/share/doc/xml-core/examples/foo.xmlcatalogs
/usr/share/doc/xml-core/examples/foo.postinst
/usr/share/doc/xml-core/examples/foo.prerm
/usr/share/doc/m4/examples/foo
Encontrar por tipo
Outro sinalizador comum para restringir sua pesquisa -type
, que permite que você encontre arquivos com base nos identificadores com base no Unix associados a todos os arquivos.
Por exemplo, você pode usar o -type d
Sinalizador para procurar somente os diretórios que correspondem aos seus critérios:
/root/misc/foobar
A lista completa de identificadores usados para seguir o -type
sinalizador pode ser encontrado em a página de man, mas alguns dos mais comuns são:
-type d
de diretórios-type f
para arquivos-type l
para links simbólicos
Localizar por hora
Procurando arquivos com base no tempo que eles foram criados ou modificados pode ser uma ferramenta muito útil para analisar logs ou mudanças em um diretório específico.
Há três categorias de comandos de pesquisa baseada na hora: modificação, alteração e acesso. Todo o tempo três categorias também têm dois subcategorias para determinar o timespan que você está procurando: min para pesquisar por minutos e tempo para pesquisar por dias.
O argumento numérico (n) marcadores baseado em vez de pode ser negativo, positivo ou neutro:
n
procura por um período de tempo que corresponde exatamente ao n.+n
procura por períodos mais de n.-n
Pesquisar por menos de n períodos.
Por exemplo, usando o -atime
sinalizador permite que você pesquisar arquivos com base na hora o arquivo foi lido ou por escrito para última. Para localizar todos os arquivos chamado foo que foram acessados há menos de 1 dia insira:
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar
Para encontrar tudo chamado foo arquivos acesso dentro de 45 minutos último uso o -amin
em vez disso, sinalize:
/root/misc/foo
Você também pode usar o -cmin
e -ctime
bandeiras da mesma forma para encontrar arquivos com base na última vez que os dados do arquivo inode foi alterados (geralmente quando o arquivo foi movido para um novo local dentro do sistema).
Depois de mover o arquivo foobar.txt agora é entre os resultados da pesquisa para todos os arquivos chamado foo que foram alterados nos last10 minutos:
find / -cmin -10 -name foo*
/root/other/foobar.txt
Os sinalizadores tempo final da -mmin
e -mtime
permitem que você encontre arquivos com base no última vez que o conteúdo do arquivo foi modificado.
Depois de usar o gato > comando para adicionar um novo texto para o arquivo foobar.txt, agora ele é localizado ao procurar arquivos que foram modificados nos últimos 5 minutos:
This is a new line.
ctrl+c
find / -mmin -5 -name foo*
/root/other/foobar.txt
Encontrar ao conteúdo do arquivo
Se você quiser pesquisar arquivos com base no conteúdo de texto real dentro do arquivo, você pode combinar o comando localizar com outros comandos unix usando o -exec
sinalizador.
Por exemplo, combinando -exec
com muito poderosa ferramenta de GREP, você pode encontrar todos os nomes foo arquivos como antes que também contenham texto específico:
/root/misc/foobar.sh:My favorite foods are:
/root/misc/foo:My favorite foods are:
/root/other/foobar.txt:My favorite foods are:
Parece que o comando inteiro muito difícil, mas ele realmente consiste apenas de duas partes básicos:
É a funcionalidade básica do comando Localizar coberto tão bem neste que tutorial, então aqui estamos pesquisando de todos os arquivos do typefile com nomes começando com foo.
A última metade do comando usa o novo -exec
sinalizador, seguido pelo comando unix que você deseja executar no thefind resultados. Nesse caso, o componente de chave é:
Isso irá procurar o conteúdo de seus arquivos (ignorando caso devido à -i
sinalizador) para o texto "Meus pratos favoritos são."
O mesmo comando em andamento, mas em vez disso, procurando "apple" vemos há apenas dois arquivos que tem maçã listado como um dos pratos Favoritos:
/root/misc/foobar.sh:apple
/root/other/foobar.txt:apple
Enquanto isso é apenas uma breve visão geral de usar -exec
Sinalizador de GREP dentro de sua localização de pesquisa, ele oferece a você um nível extremamente alto de versatilidade e poder em suas pesquisas.
Agora, vá para trás e encontrar os arquivos!