Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — VUNESP 2023

Sistemas OperacionaisLinux
Código
vu197356
Banca
VUNESP
Órgão
EsFCEx
Ano
2023
Cargo
CFO/QC ( )
No sistema operacional Linux, o comando patch tem a finalidade de
  1. Aaplicar, geralmente em arquivos de código-fonte, instruções de modificação de conteúdo, as quais estão contidas em arquivos gerados pelo comando diff.
  2. Balterar a configuração que instrui o sistema em quais diretórios buscar por arquivos executáveis, quando um comando é digitado no terminal.
  3. Cmostrar a estrutura hierárquica de arquivos e diretórios, em formato de árvore, a partir do ponto especificado.
  4. Datualizar o MACtime de um arquivo ou diretório para a data e hora atuais ou para valores especificados.
  5. Eefetuar uma requisição HTTP a uma URL utilizando o verbo PATCH.
Revelar gabarito e comentário

GabaritoA — aplicar, geralmente em arquivos de código-fonte, instruções de modificação de conteúdo, as quais estão contidas em arquivos gerados pelo comando diff.

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”.

Comando patch no Linux

Gabarito: letra A. O comando patch aplica, em arquivos de texto (tipicamente código-fonte), as diferenças entre versões registradas em um arquivo gerado pelo comando diff. É a ferramenta clássica do Unix para atualizar arquivos com base em um "patch" (remendo), sem precisar reenviar o arquivo inteiro.

O patch e o diff formam um par inseparável no mundo Unix/Linux. O diff compara dois arquivos (ou diretórios) e gera um arquivo de diferenças — um "diff" — que descreve, linha por linha, o que precisa ser adicionado, removido ou alterado para transformar um arquivo no outro. O patch lê esse arquivo de diferenças e aplica as modificações em um arquivo de destino, efetivando as mudanças. Esse fluxo é amplamente usado no desenvolvimento de software: um programador gera um patch com as alterações que fez e o envia para outros, que o aplicam em suas cópias do código-fonte com patch. É uma forma eficiente de distribuir alterações sem enviar o arquivo completo.

Na prática, o uso típico é: diff -u arquivo_original arquivo_modificado > mudancas.patch e depois patch < mudancas.patch (ou patch arquivo_original < mudancas.patch). O patch também pode reverter alterações com a opção -R. É importante notar que o patch trabalha com texto e é sensível ao contexto — se o arquivo de destino não corresponder ao esperado, ele pode falhar ou aplicar o patch no lugar errado.

A banca explora aqui a confusão entre comandos que têm nomes parecidos ou funções relacionadas, mas distintas. O patch não tem nada a ver com configuração de PATH (variável de ambiente que lista diretórios de busca de executáveis), nem com exibição de árvore de diretórios (função do tree), nem com atualização de timestamps (função do touch), nem com requisições HTTP (função do curl ou wget). A pegadinha está em associar "patch" a algo de rede (verbo HTTP PATCH) ou a "path" (caminho de busca), quando na verdade o comando é uma ferramenta de edição de texto baseada em diferenças.

Guarde a dupla diff/patch como uma unidade: o diff gera as diferenças; o patch aplica as diferenças. É exatamente essa relação que a alternativa correta descreve e que as demais tentam confundir.

Comando patch
  • 1Função
    • Aplica diferenças geradas pelo diff
    • Em arquivos de texto (código-fonte)
  • 2Fluxo típico
    • diff gera o arquivo de diferenças
    • patch aplica as modificações
  • 3Confusões comuns
    • PATH (variável de ambiente)
    • tree (estrutura de diretórios)
    • touch (timestamps)
    • Verbo HTTP PATCH
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa descreve com precisão a função do patch: aplicar instruções de modificação de conteúdo (as diferenças) contidas em arquivos gerados pelo diff. O patch é o comando que consome a saída do diff e modifica os arquivos de código-fonte conforme as diferenças indicadas. É a definição canônica do comando.

Alternativa B — ❌ Incorreta

A alternativa descreve a função da variável de ambiente PATH, que define os diretórios onde o shell procura por executáveis quando um comando é digitado. O comando que altera o PATH é o export PATH=... (ou edição de arquivos como .bashrc), não o patch. A confusão aqui é entre "patch" e "path" — palavras parecidas, mas completamente diferentes.

Alternativa C — ❌ Incorreta

A alternativa descreve a função do comando tree, que exibe a estrutura hierárquica de diretórios e arquivos em formato de árvore. O patch não tem relação com exibição de diretórios. A banca troca a função de um comando por outro que também é usado no terminal, mas com propósito totalmente distinto.

Alternativa D — ❌ Incorreta

A alternativa descreve a função do comando touch, que atualiza o timestamp (MACtime — modificação, acesso e criação) de arquivos ou diretórios para a data/hora atual ou especificada. O patch não mexe em timestamps; ele altera o conteúdo dos arquivos. A confusão aqui é entre "aplicar modificações de conteúdo" e "atualizar metadados de tempo".

Alternativa E — ❌ Incorreta

A alternativa descreve uma requisição HTTP com o verbo PATCH, usado em APIs REST para atualizações parciais de recursos. O comando patch do Linux não tem relação com HTTP; para fazer requisições HTTP usa-se curl ou wget. A banca explora a homonímia entre o comando e o verbo HTTP, mas são coisas distintas.

Gabarito: letra A — o patch aplica diferenças geradas pelo diff em arquivos de código-fonte.

Link permanente: /questoes/vu197356