Questão de Sistemas Operacionais — Linux — Quadrix 2025
- Código
- qg598714
- Banca
- Quadrix
- Órgão
- CRM-MS
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Informática
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: letra E (Errado). O comando grep -irl "diabetes tipo 2" /home/pacientes/ não é válido porque a opção -r (recursiva) não existe no grep padrão do Linux — a recursão é feita com -R (maiúsculo) ou -r em algumas implementações, mas a forma correta e portável é grep -Ril. Além disso, a opção -l (letra minúscula L) lista apenas os nomes dos arquivos que contêm a expressão, o que atende ao objetivo do dr. João, mas a combinação -irl está incorreta.
O grep é um dos comandos mais utilizados no Linux para pesquisar texto dentro de arquivos. Sua sintaxe básica é grep [opções] padrão [arquivo...]. As opções mais comuns incluem:
-i: ignora diferenças entre maiúsculas e minúsculas (case-insensitive).
-r ou -R: pesquisa recursivamente em todos os arquivos dentro de um diretório e seus subdiretórios. A diferença entre -r e -R é sutil: -R segue links simbólicos, enquanto -r não. Na prática, muitos sistemas aceitam ambos, mas a documentação oficial do GNU grep recomenda -R para recursão completa.
-l: em vez de exibir as linhas que correspondem ao padrão, lista apenas os nomes dos arquivos que contêm pelo menos uma correspondência. Isso é útil quando se quer saber quais arquivos contêm o termo, sem mostrar o conteúdo.
-n: mostra o número da linha onde a correspondência foi encontrada.
-c: conta o número de linhas correspondentes em cada arquivo.
-v: inverte a seleção, mostrando as linhas que NÃO correspondem ao padrão.
-E: usa expressões regulares estendidas (equivale ao egrep).
-w: busca apenas palavras inteiras (o padrão deve corresponder a uma palavra completa).
No caso do dr. João, ele quer encontrar todos os arquivos que contêm a expressão "diabetes tipo 2" no diretório /home/pacientes/. O comando correto seria:
grep -Ril "diabetes tipo 2" /home/pacientes/Ou, se a implementação do grep aceitar -r (como no GNU grep), grep -ril também funcionaria, mas a forma mais segura e portável é usar -R. A banca considerou o item errado porque a opção -r minúscula não é a padrão para recursão no grep — o correto é -R maiúsculo.
É importante notar que a opção -l (letra L minúscula) é diferente da opção -L (letra L maiúscula): -l lista os arquivos que contêm o padrão, enquanto -L lista os arquivos que NÃO contêm o padrão. Essa é uma pegadinha clássica em provas.
Outra pegadinha comum é confundir grep com find. Enquanto grep busca conteúdo dentro de arquivos, find busca arquivos e diretórios por nome, tipo, tamanho, data de modificação, etc. Por exemplo, find /home/pacientes -name "*.txt" encontraria todos os arquivos .txt no diretório, mas não procuraria conteúdo dentro deles.
Para fixar:
Comando | Função |
|---|---|
| Ignora maiúsculas/minúsculas |
| Busca recursiva (segue links simbólicos) |
| Busca recursiva (não segue links simbólicos) — menos comum |
| Lista apenas nomes de arquivos com correspondência |
| Lista apenas nomes de arquivos sem correspondência |
| Localiza arquivos/diretórios por atributos |
A banca troca a opção -R (maiúscula) por -r (minúscula) para recursão no grep. Muitos candidatos conhecem a recursão, mas não lembram que a forma canônica é -R. Além disso, confundem -l (lista arquivos com correspondência) com -L (lista arquivos sem correspondência). Fique atento a essas letras!
O item está errado porque o comando grep -irl não é a forma correta para busca recursiva no Linux. A opção para recursão no grep é -R (maiúscula), não -r (minúscula). Embora algumas versões do grep aceitem -r, a documentação oficial e a maioria das provas consideram -R como a opção correta. Além disso, a combinação -irl não é padrão: o correto seria -Ril (ou -ril se a implementação aceitar). Portanto, o comando apresentado não funcionaria como esperado, tornando o item errado.
Gabarito: letra E (Errado).
Link permanente: /questoes/qg598714