Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — FCC 2021

Sistemas OperacionaisLinux
Código
fc060798
Banca
FCC
Órgão
TJ-SC
Ano
2021
Cargo
Analista de Sistemas
Uma Analista de Sistemas criou o script bash, para ser executado em ambiente Linux em condições ideais, cujo código é apresentado abaixo.#!/bin/bashDATA=date +%y%m%d-%H%Mcp $1 DATADATA-2Considerando que o código não apresenta erros,
  1. Aa Analista deve atribuir permissão de execução ao script criado com o comando shmod a+x copiar.ba; considerando que o nome do arquivo de script seja copiar.ba.
  2. Bo script copia um arquivo e, durante a operação, acrescenta a data e a hora local ao nome do novo arquivo.
  3. Co script copia um arquivo e, durante a operação, acrescenta a data e a hora local para o novo arquivo, após seu último registro.
  4. Do script usa os objetos 1e1 e -2. 1representaoprimeiropara^metropassadonalinhadecomandousadaparaexecutaroscripteo1 representa o primeiro parâmetro passado na linha de comando usada para executar o script e o -2 representa uma cópia do primeiro parâmetro com um – no começo do nome.
  5. Eo bash não faz diferença entre aspas simples, aspas duplas e crases, por isso o comando da 2a linha do código poderia ser escrito como DATA=”date +%y%m%d-%H%M” sem alterar a lógica do script.
Revelar gabarito e comentário

GabaritoB — o script copia um arquivo e, durante a operação, acrescenta a data e a hora local ao nome do novo arquivo.

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

Script Bash: cópia com timestamp

Gabarito: letra B. O script utiliza a substituição de comando com crases para capturar a data/hora no formato %y%m%d-%H%M e, em seguida, copia o arquivo passado como primeiro parâmetro (1)paraumnovoarquivocujonomeeˊadata/horaseguidadeumhıˊfeneosegundopara^metro(1) para um novo arquivo cujo nome é a data/hora seguida de um hífen e o segundo parâmetro (2). A alternativa B descreve corretamente essa funcionalidade.

A banca testa o conhecimento de substituição de comando em shell script e o uso de parâmetros posicionais. O comando date +%y%m%d-%H%M retorna a data/hora atual, e as crases executam esse comando e substituem seu resultado na string. O cp então cria uma cópia com o nome composto.

  1. 1DATA=date +%y%m%d-%H%MSubstituição de comando (crases)
  2. 2cp $1 DATADATA-2Copia 1paraDATA1 para DATA-2
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O comando para atribuir permissão de execução é chmod, e não shmod. Além disso, a permissão de execução não é necessária para scripts bash quando executados com bash script.sh, mas mesmo assim o comando correto seria chmod a+x copiar.ba. A alternativa erra ao inventar o comando shmod.

Alternativa B — ✅ Correta ⟵ GABARITO

Conforme explicado, o script copia o arquivo $1 e acrescenta a data e hora local ao nome do novo arquivo, formando algo como 210315-1430-arquivo.txt. A descrição está precisa.

Alternativa C — ❌ Incorreta

Afirma que a data/hora é acrescentada "após seu último registro" – isso sugere alteração no conteúdo do arquivo, o que não ocorre. O script apenas renomeia o arquivo copiado com um prefixo de data/hora; o conteúdo permanece idêntico.

Alternativa D — ❌ Incorreta

Diz que -$2 é um objeto que representa uma cópia do primeiro parâmetro com um "–" no início. Na verdade, no script $1 $DATA-$2, o - é apenas um caractere literal entre a variável $DATA e $2. O resultado é um único nome de arquivo, não um objeto separado.

Alternativa E — ❌ Incorreta

O bash diferencia sim aspas simples, duplas e crases. As crases (` `) executam o comando e substituem a saída. Aspas duplas permitem substituição de variáveis mas não executam comandos, então DATA="date +%y%m%d-%H%M"` atribuiria a string literal, não o resultado do comando. Aspas simples impedem qualquer interpretação. Portanto, a substituição por aspas duplas quebraria a lógica.

PEGA ESSA DICA!

Memorize as formas de substituição de comando: crases (` `) e $()` (mais moderno). Lembre-se também da diferença entre aspas simples (literal) e duplas (interpreta variáveis, mas não comandos).

Gabarito: letra B

Link permanente: /questoes/fc060798