Bup bip bop… a calcular… a calcular… a iniciar a sequência 42…
Bom, parece que aqueles robôs malucos estão outra vez a armar das suas! Assumiram o controlo desta página e traduziram-na para o idioma local do utilizador. No entanto, os robôs têm boas intenções e um grande coração (de metal). Apenas pretendem ajudar! Indique-nos como os robôs se estão a portar utilizando os botões na parte inferior da página. Aceder à versão em inglês

Como encontrar os ficheiros em Linux

Lembrar-se sempre que um ficheiro em particular encontra-se na sua instalação do Linux pode ser bastante difícil e pesquisar manualmente através de uma árvore considerável é um processo muito trabalho intensiva. Por conseguinte, como fazer que procura no Linux? Felizmente, com o Linux disponibiliza algumas ferramentas de muito fácil de utilizar para encontrar os ficheiros em toda a sua distribuição completa.

DIFICULDADE EM Básico - 1 | Médio - 2 | Avançado - 3
TEMPO NECESSÁRIO 15 minutos
PRODUTOS RELACIONADOS Baseados no Linux VPS ou servidores dedicados
Baseados no Linux partilhado com SSH ativado de alojamento

Como encontrar os ficheiros no Linux

O comando Localizar é a ferramenta principal utilizada para localizar ficheiros em qualquer lugar no seu computador. Mais básicos, encontre é executada utilizando a seguinte sintaxe:

find [path] [flags]

path e flags são ambos opcionais, pelo que, por predefinição encontre será modo recursivo retorno o caminho de todos os ficheiros no seu diretório atual e diretórios subcategoria:

./.bashrc
./.ssh
./.ssh/authorized_keys
./.monit.state
./.aptitude
./.aptitude/cache
./.aptitude/config
./.profile
./.psql_history
./.gem
...

Encontrar por nome

Para procurar ficheiros com um nome específico, utilize o -name Sinalizador seguido de texto de procura. Por exemplo:

find -name foo
./misc/foo

Todos os ficheiros que encontra no diretório atual com o nome exato foo. Neste caso encontrada apenas um ficheiro no meu diretório de diversos. Utilizando o -iname em vez disso, bandeira utiliza uma pesquisa de maiúsculas e minúsculas:

find -iname FoO
./misc/foo

Utilizar um asterisco (*) permite-lhe pesquisar através de caracteres universais:

find -name foo*
./misc/foobar.txt
./misc/foobar.sh
./misc/foo
./misc/foobar

Encontrar por localização

Pesquisar fora do seu diretório atual muitas vezes, é obrigatório e facilmente pode ser realizada através de imediatamente após o comando localizar a opção de caminho.

Por exemplo, para procurar ficheiros em todo o sistema, utilize um / path opção:

find / -name foo*
/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
...

Pode limitar a caminho de procura para baixo, se necessário, neste caso, encontrar os mesmos ficheiros que se encontra no diretório de raiz/RE:

find ~/misc -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar

Pode ainda utilizar o vários paths no prazo de comando para pesquisar dois ou mais localizações específicas. Aqui nós estão a pesquisar na raiz/diversos e os diretórios /usr/share/doc:

find ~/misc /usr/share/doc -name foo*
/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

É outra bandeira comum para reduzir a sua pesquisa -type, que lhe permite encontrar os ficheiros com base nos identificadores de com base em Unix associados a todos os ficheiros.

Por exemplo, pode utilizar o -type d Sinalizador para procurar apenas os diretórios que correspondem aos critérios:

find / -type d -name foo*
/root/misc/foobar

A lista completa de identificadores utilizados para seguir o -type Sinalizador pode ser encontrado na a página de man, mas alguns dos mais comuns são:

  • -type d para diretórios
  • -type f para os ficheiros
  • -type l hiperligações simbólica

Encontrar por hora

A procurar ficheiros com base no tempo que foram criados ou modificados pode ser uma ferramenta muito útil para analisar os registos ou alterações num determinado diretório.

Existem três categorias de comandos baseado em vez de pesquisa: modificação, alteração e acesso. Tempo de três todas as categorias também tem duas subcategorias para determinar o timespan que está a pesquisar: mínimo para pesquisar por apenas alguns minutos e hora para pesquisar por número de dias.

O argumento numérico (n) para sinalizadores baseado em tempo pode ser negativo, positivo ou neutro:

  • n procura um período de tempo correspondente ao exatamente n.
  • +n procura períodos de mais n.
  • -n Procure os períodos de menos de n.

Por exemplo, utilizando o -atime Sinalizador permite-lhe a procura de ficheiros com base na hora de ficheiro de última leitura ou escrito. Para encontrar todos os ficheiros com nome foo acedidos há menos de 1 dia introduza:

find / -atime -1 -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar

Para encontrar tudo com nome foo ficheiros acesso no prazo de 45 minutos última utilização o -amin em vez disso sinalizador:

find / -amin -45 -name foo*
/root/misc/foo

Também pode utilizar o -cmin e -ctime sinalizadores da mesma forma para encontrar os ficheiros com base da última vez que os dados do ficheiro o inode foi alterados (normalmente, quando o ficheiro foi transferido para uma nova localização do sistema).

Depois de mover o ficheiro foobar.txt é agora entre os resultados da pesquisa para todos os ficheiros com nome foo que foram alterados minutos last10:

mv /root/misc/foobar.txt /root/other/foobar.txt
find / -cmin -10 -name foo*
/root/other/foobar.txt

Sinalizadores de tempo final -mmin e -mtime permite-lhe encontrar ficheiros com base no última vez que o conteúdo do ficheiro foi alterado.

Depois de utilizar o cat > para adicionar algum texto novos para o ficheiro foobar.txt, é agora que se encontra quando procurar os ficheiros que foram alterados últimos 5 minutos:

cat > ~/other/foobar.txt
This is a new line.
ctrl+c
find / -mmin -5 -name foo*
/root/other/foobar.txt

Encontrar ao conteúdo do ficheiro

Se desejar procurar ficheiros com base no conteúdo do texto real no ficheiro, pode combinar o comando Localizar com outros comandos unix utilizando o -exec Sinalizador.

Por exemplo, ao combinar -exec com o muito poderoso ferramenta de GREP, pode encontrar todos com nome foo ficheiros como antes que também contenham texto em particular:

find / -type f -name foo* -exec grep -i "My favorite foods are" /dev/null {} +
/root/misc/foobar.sh:My favorite foods are:
/root/misc/foo:My favorite foods are:
/root/other/foobar.txt:My favorite foods are:

O comando todo realmente aparentemente, bastante complicado, mas o mesmo consiste apenas dois blocos básicos:

find / -type f -name foo*

É que as funcionalidades básicas do comando encontre abrangido por isso, longe neste tutorial, por isso, aqui que está a pesquisar todos os ficheiros do typefile com nomes começando foo.

-exec grep -i "My favorite foods are" /dev/null {} +

A última metade do comando utiliza os novos -exec bandeira, seguida imediatamente o comando unix que pretende executar em thefind resultados. Neste caso, o componente é:

grep -i "My favorite foods are"

Isto irá procurar o conteúdo dos seus ficheiros (ignorando caso devido à -i Sinalizador) para o texto "meus favoritos alimentos são."

Agora com o mesmo comando mas em vez disso, a pesquisar "apple" vemos existem apenas dois ficheiros que tenha apple listado como um dos alimentos favoritos:

find / -type f -name foo* -exec grep -i "apple" /dev/null {} +
/root/misc/foobar.sh:apple
/root/other/foobar.txt:apple

Apesar de isto é apenas uma breve descrição geral da utilização -exec Pesquisar GREP bandeira no prazo de sua encontrar, oferece-lhe um nível extremamente elevado de versatilidade e potência as suas pesquisas.

Agora, vá para a frente e encontrar os ficheiros!


Este Artigo Foi Útil?
Obrigado pelos seus comentários. Para falar com um representante do serviço de apoio ao cliente, utilize o número de telefone da assistência ou a opção de conversação acima.
Ficamos contentes por o termos ajudado! Podemos fazer mais alguma coisa por si?
Pedimos desculpas. Indique-nos o que era confuso ou o motivo pelo qual a solução não resolveu o seu problema.