Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — Quadrix 2025

Sistemas OperacionaisLinux
Código
qg594782
Banca
Quadrix
Órgão
CFBio
Ano
2025
Nível
Superior
Cargo
Analista de Sistemas
A respeito da arquitetura e da organização de computadores e dos sistemas operacionais, julgue o item a seguir.Caso se deseje localizar arquivos no diretório /dados/cfbio e em seus subdiretórios, excluindo a exibição de arquivos binários e ocultos, deve‑se executar o comando: locate /dados/cfbio ‑type f ! ‑name “*.bin” ‑not ‑path “*/.*”.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comandos Linux: locate vs. find

Gabarito: letra E (Errado). O comando locate não aceita as opções -type, -name e -path — essas são opções do comando find. O locate apenas busca nomes de arquivos em um banco de dados pré-construído, sem suporte a filtros por tipo, nome ou caminho. Para realizar a busca descrita, o comando correto seria find /dados/cfbio -type f ! -name "*.bin" ! -path "*/.*".

O comando locate é uma ferramenta de busca rápida que consulta um banco de dados indexado (geralmente /var/lib/mlocate/mlocate.db), atualizado periodicamente pelo comando updatedb. Ele é eficiente para encontrar arquivos pelo nome, mas não possui opções para filtrar por tipo de arquivo (-type), nome (-name) ou caminho (-path). Essas opções são exclusivas do comando find, que percorre a árvore de diretórios em tempo real, aplicando os critérios especificados.

Para entender a diferença prática: se você executar locate /dados/cfbio -type f, o locate interpretará -type como parte do padrão de busca (ou seja, procurará por arquivos cujo nome contenha "-type"), não como uma opção de filtro. O resultado seria uma busca por nomes de arquivos que contenham a string "-type", o que não atende ao objetivo. Já o find interpreta -type f como "apenas arquivos regulares", ! -name "*.bin" como "excluir arquivos com extensão .bin" e ! -path "*/.*" como "excluir caminhos que contenham um componente oculto (começando com ponto)".

A confusão entre locate e find é comum, mas a distinção é clara: locate é uma busca por nome em um índice prévio, enquanto find é uma busca recursiva com filtros avançados. A banca explora exatamente essa troca de comandos, apresentando opções do find como se fossem do locate.

NÃO CAIA NESSA!

A banca troca o comando find pelo locate, mantendo as opções -type, -name e -path que são exclusivas do find. O candidato que conhece apenas a sintaxe, sem saber a qual comando cada opção pertence, pode ser induzido a marcar "Certo". Lembre-se: locate só busca por nome no banco de dados; find é quem aceita filtros por tipo, nome e caminho.

Busca de arquivos no Linux
  • 1locate
    • Consulta banco de dados (updatedb)
    • Busca apenas por nome
    • Não aceita -type, -name, -path
  • 2find
    • Percorre diretórios em tempo real
    • Aceita filtros avançados
      • -type f (arquivos regulares)
      • ! -name "*.bin" (exclui binários)
      • ! -path "*/.*" (exclui ocultos)
LEVEL · soulevel.com.br

Item — ❌ Errado

O comando apresentado está incorreto porque locate não suporta as opções -type, -name e -path. Essas opções pertencem ao comando find. O comando correto para a tarefa descrita seria:

find /dados/cfbio -type f ! -name "*.bin" ! -path "*/.*"

O find percorre o diretório /dados/cfbio e seus subdiretórios, selecionando apenas arquivos regulares (-type f), excluindo aqueles com extensão .bin (! -name "*.bin") e excluindo caminhos que contenham componentes ocultos (! -path "*/.*"). O locate, por sua vez, apenas consulta o banco de dados de nomes de arquivos, sem capacidade de filtrar por tipo ou caminho.

Gabarito: letra E (Errado).

Link permanente: /questoes/qg594782