Pular para o conteúdo principal

Questão de Sistemas Operacionais — Geral — FGV 2024

Sistemas OperacionaisGeral
Código
fg165652
Banca
FGV
Órgão
DATAPREV
Ano
2024
Cargo
Ana Proc ( )

Considere os seguintes trechos de código, um em PowerShell e outro em Shell Script (Bash), que possuem a mesma finalidade:

Imagem associada para resolução da questão

Ambos os códigos mostrados realizam a cópia de arquivos com a extensão .txt de uma pasta de origem para uma pasta de backup.


Considerando o comportamento esperado de cada script, assinale a opção correta.

  1. AO código PowerShell pode gerar um erro se a pasta de backupnão existir, enquanto o script Bash irá criar a pastaautomaticamente.
  2. BO código em PowerShell pode ser executado diretamente noWindows sem necessidade de software adicional, enquanto ocódigo em Bash requer a instalação de um ambiente Unix noWindows.
  3. CAmbos os scripts estão incorretos, pois os comandos Copy-Item e cp não realizam cópia recursiva.
  4. DO código Bash é mais seguro que o PowerShell, pois impede osobrescrita de arquivos no destino sem confirmação.
  5. EO código PowerShell possui melhor desempenho que o Bash,pois é uma linguagem compilada.
Revelar gabarito e comentário

GabaritoB — O código em PowerShell pode ser executado diretamente noWindows sem necessidade de software adicional, enquanto ocódigo em Bash requer a instalação de um ambiente Unix noWindows.

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

PowerShell vs Bash: cópia de arquivos e portabilidade

Gabarito: letra B. O código em PowerShell pode ser executado diretamente no Windows sem necessidade de software adicional, pois o PowerShell é nativo do sistema desde o Windows 7/Server 2008, enquanto o código em Bash requer a instalação de um ambiente Unix no Windows (como WSL, Cygwin ou Git Bash). As demais alternativas contêm erros conceituais sobre o comportamento dos comandos Copy-Item e cp, sobre recursividade, segurança e desempenho.

O enunciado apresenta dois scripts que copiam arquivos .txt de uma pasta de origem para uma pasta de backup. O primeiro, em PowerShell, provavelmente usa o cmdlet Copy-Item; o segundo, em Bash, usa o comando cp. Ambos são ferramentas de linha de comando amplamente utilizadas para manipulação de arquivos, mas pertencem a ambientes distintos: o PowerShell é o shell padrão do Windows, enquanto o Bash é o shell padrão de sistemas Unix-like (Linux, macOS).

A questão explora conhecimentos básicos de sistemas operacionais: a portabilidade de scripts entre plataformas, o comportamento de comandos de cópia e a diferença entre linguagens interpretadas e compiladas. Vamos analisar cada alternativa com profundidade.

Primeiro, é importante entender o que cada comando faz. O Copy-Item do PowerShell copia arquivos e diretórios, mas, por padrão, não copia recursivamente o conteúdo de um diretório — para isso, é necessário usar o parâmetro -Recurse. Já o cp do Bash, sem opções, copia apenas o arquivo ou diretório especificado; para copiar recursivamente, usa-se -r ou -R. Ambos os comandos, quando o destino não existe, podem criar o arquivo de destino, mas não criam diretórios automaticamente — o cp falha se o diretório de destino não existir, e o Copy-Item também falha se o diretório de destino não existir (a menos que se use -Force com caminhos que incluam a criação de diretórios, o que não é o comportamento padrão).

A alternativa B é a correta porque reflete a realidade da portabilidade: o PowerShell é um componente nativo do Windows, presente desde o Windows 7 e Windows Server 2008 R2, e pode ser executado diretamente no sistema, sem instalação adicional. Já o Bash, embora possa ser executado no Windows por meio de emuladores (Cygwin) ou subsistemas (WSL), não é nativo — requer a instalação de um ambiente Unix. Essa é uma distinção fundamental que a banca explora.

As demais alternativas contêm erros:

  • A) Afirma que o PowerShell pode gerar erro se a pasta de backup não existir, enquanto o Bash criaria a pasta automaticamente. Isso é falso: o cp não cria diretórios automaticamente; se o diretório de destino não existir, o comando falha com erro. O Copy-Item também não cria diretórios automaticamente. Ambos exigem que o diretório de destino exista previamente.

  • C) Afirma que ambos os scripts estão incorretos porque Copy-Item e cp não realizam cópia recursiva. Isso é falso: ambos os comandos suportam cópia recursiva, mas por padrão não a realizam. O Copy-Item tem o parâmetro -Recurse, e o cp tem a opção -r/-R. A afirmação de que "não realizam cópia recursiva" é incorreta, pois eles podem realizar, apenas não por padrão.

  • D) Afirma que o Bash é mais seguro que o PowerShell porque impede a sobrescrita de arquivos sem confirmação. Isso é falso: o cp sobrescreve arquivos existentes sem confirmação, a menos que se use a opção -i (interactive). O Copy-Item também sobrescreve por padrão, sem confirmação. Nenhum dos dois é intrinsecamente mais seguro nesse aspecto.

  • E) Afirma que o PowerShell tem melhor desempenho que o Bash porque é uma linguagem compilada. Isso é falso: o PowerShell é uma linguagem interpretada (baseada em .NET, mas interpretada em runtime), não compilada. O Bash também é interpretado. A afirmação sobre desempenho é infundada e o motivo apresentado é incorreto.

A pegadinha da questão está na alternativa A, que inverte o comportamento dos comandos em relação à criação de diretórios. Muitos candidatos podem pensar que o cp cria diretórios automaticamente, mas isso não é verdade. A alternativa B é a única que apresenta uma afirmação factualmente correta sobre a portabilidade dos scripts.

PowerShell vs Bash
  • 1Portabilidade
    • PowerShell: [+] nativo do Windows
    • Bash: [-] requer ambiente Unix (WSL/Cygwin)
  • 2Cópia de arquivos
    • Copy-Item (PowerShell)
      • Não cria diretório automaticamente
      • Recursivo: -Recurse
    • cp (Bash)
      • Não cria diretório automaticamente
      • Recursivo: -r/-R
  • 3Sobrescrita
    • Ambos sobrescrevem sem confirmação
    • Bash: -i para confirmar
    • PowerShell: -Confirm
  • 4Linguagem
    • PowerShell: interpretada
    • Bash: interpretada
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que o código PowerShell pode gerar erro se a pasta de backup não existir, enquanto o script Bash criará a pasta automaticamente. Isso é falso: o comando cp do Bash não cria diretórios automaticamente. Se o diretório de destino não existir, o cp retorna erro ("No such file or directory"). O Copy-Item do PowerShell também não cria diretórios automaticamente; ambos exigem que o diretório de destino exista. A alternativa inverte o comportamento real: na verdade, ambos falham se o diretório de destino não existir, a menos que se use opções específicas (como -Force no PowerShell ou mkdir -p antes do cp).

Alternativa B — ✅ Correta ⟵ GABARITO

O PowerShell é um componente nativo do Windows, presente desde o Windows 7 e Windows Server 2008 R2, e pode ser executado diretamente no sistema, sem necessidade de software adicional. Já o Bash, embora possa ser executado no Windows por meio de emuladores (Cygwin) ou subsistemas (WSL), não é nativo — requer a instalação de um ambiente Unix. Essa é a afirmação correta e reflete a realidade da portabilidade de scripts entre plataformas.

Alternativa C — ❌ Incorreta

Afirma que ambos os scripts estão incorretos porque Copy-Item e cp não realizam cópia recursiva. Isso é falso: ambos os comandos suportam cópia recursiva, mas não a realizam por padrão. O Copy-Item tem o parâmetro -Recurse, e o cp tem a opção -r/-R. A afirmação de que "não realizam cópia recursiva" é incorreta, pois eles podem realizar, apenas não por padrão. Além disso, a questão não afirma que a cópia é recursiva; apenas copia arquivos .txt de uma pasta para outra, o que pode ser feito sem recursão.

Alternativa D — ❌ Incorreta

Afirma que o Bash é mais seguro que o PowerShell porque impede a sobrescrita de arquivos sem confirmação. Isso é falso: o cp sobrescreve arquivos existentes sem confirmação, a menos que se use a opção -i (interactive). O Copy-Item também sobrescreve por padrão, sem confirmação. Nenhum dos dois é intrinsecamente mais seguro nesse aspecto. A segurança depende das opções utilizadas, não da linguagem em si.

Alternativa E — ❌ Incorreta

Afirma que o PowerShell tem melhor desempenho que o Bash porque é uma linguagem compilada. Isso é falso: o PowerShell é uma linguagem interpretada (baseada em .NET, mas interpretada em runtime), não compilada. O Bash também é interpretado. A afirmação sobre desempenho é infundada e o motivo apresentado é incorreto. O desempenho de scripts depende de muitos fatores, mas a natureza compilada ou interpretada não é o determinante principal nesse contexto.

NÃO CAIA NESSA!

A banca inverte o comportamento dos comandos em relação à criação de diretórios: sugere que o cp cria a pasta automaticamente, quando na verdade ele falha se o diretório de destino não existir. Fique atento: tanto cp quanto Copy-Item exigem que o diretório de destino exista previamente, a menos que se use opções específicas.

PEGA ESSA DICA!

Para questões que comparam PowerShell e Bash, lembre-se: o PowerShell é nativo do Windows, o Bash é nativo de Unix-like. Para cópia recursiva, use -Recurse no PowerShell e -r no Bash. Para sobrescrita com confirmação, use -i no Bash e -Confirm no PowerShell. Esses são os pontos mais cobrados.

Gabarito: letra B

Link permanente: /questoes/fg165652