Linux Essencial/Lição Localizando arquivos: diferenças entre revisões

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Criou a página com "teste"
 
Sem resumo de edição
 
Linha 1:
* '''Objetivo(s):''' Fornecer informações sobre como é feita a localização de arquivos por linha de comando.
teste
* '''Direitos autorais e licença:''' Veja notas de direitos autorais e licença no final da lição.
 
== Localização de arquivos ==
Muitas vezes é importante para o administrador do sistema saber onde se encontram determinados arquivos, principalmente os que influenciam a configuração do sistema. Existem vários meios de se fazer busca, podendo ser através de caminhos de ''path'' (atalhos), diretamente no sistema ou em um banco de dados.
 
=== which ===
A ferramenta which é utilizada na busca de comandos presentes no ''path'' do sistema quanto ou do usuário corrente. Como a busca é feita dentro do ''path'' ele mostrará os arquivos executáveis.
 
Sintaxe:
which comando
 
=== whereis ===
Essa ferramenta faz busca por arquivos executáveis, por manuais, arquivos fontes e de configuração (ver sobre manuais no capítulo sobre Documentação).
 
Sintaxe:
whereis comando
'''NOTA:''' o whereis pode trazer alguns comandos que o which não retorna, sendo aconselhável o uso deste comando.
 
=== find ===
O comando find faz a busca por arquivo ou diretório no sistema, bastando passar o ponto inicial de busca e uma expressão que define os arquivos a serem encontrados. Essas expressões incluem várias características dos arquivos, incluindo seu tamanho, data de criação ou modificação, etc. Outras opções incluem, por exemplo, a quantidade de níveis em que a busca deve ser feita.
 
Sintaxe:
find diretório_busca [opções][arquivo/diretório]
'''diretório_busca''' é o ponto inicial de busca, percorrendo também os sub-diretórios presentes dentro do mesmo.
 
opções:
 
'''-name (expressão)''' - faz a busca pela expressão indicada (arquivo/diretório)
 
'''-size (tamanho)''' - faz a busca pelo tamanho indicado. Caso seja preciso fazer busca de até determinado tamanho ou maiores, pode-se passar “+” ou “-” antes de (tamanho);
 
'''-type (tipo)''' - faz a busca pelo tipo de arquivo.
 
Tipos:
 
'''b''' - bloco
 
'''c''' - caractere
 
'''d''' - diretório
 
'''p''' - pipe
 
'''l''' - link simbólico
 
'''s''' - socket
 
'''-mindepth (num)''' - não faz a busca abaixo de subdiretórios com ''num'' níveis;
 
'''-maxdepth (num)''' - faz a busca até ''num'' subdiretórios do diretório de busca.
 
Exemplo:
$ find /tmp -name pasta1
$ find /tmp -size +500K
Em ambos os exemplos a busca será feita dentro do diretório /tmp. No primeiro exemplo será pesquisado o nome pasta1 (nesse caso o nome tem que ser igual ao que está sendo procurado), e no segundo exemplo serão pesquisados arquivos maiores que 500K.
 
=== Locate/updatedb ===
Enquanto o comando find faz a busca no momento de solicitação, o comando locate faz a busca dentro de um banco de dados já construído. A procura dentro de um banco de dados pronto é muito mais rápida.
 
Sintaxe:
locate [expressão]
Expressão é a palavra a ser pesquisada dentro do banco de dados.
 
A construção do banco de dados é feita com a ferramenta updatedb.
 
Sintaxe:
 
<code>updatedb</code>
 
Veja um exemplo, supondo que o banco de dados já está construído:
 
<code>$ locate ls</code>
 
Com o comando acima é possível pesquisar, dentro do banco de dados, todas as entradas que contenham a expressão ls.
 
'''NOTA:''' O find é mais lento, mas não ocupa espaço em disco.
 
== Exercícios de Revisão ==
1. Crie um arquivo chamado "achei" dentro de /tmp. Depois vá para o "/" usando caminho relativo. Utilize o localizador '''find''' para encontrar o arquivo "achei" a partir do "/".
 
2. Atualize o banco de dados para o locate. Faça a mesma busca com o locate. Qual demorou mais, o locate (some ao locate o tempo de criação do banco de dados) ou o find?
 
3. Localize o comando halt e seu arquivo de configuração.