Questão de Sistemas Operacionais — Linux — FCC 2021
Sistemas Operacionais›Linux
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 DATA−2Considerando que o código não apresenta erros,
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.
Bo script copia um arquivo e, durante a operação, acrescenta a data e a hora local ao nome do novo arquivo.
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.
Do script usa os objetos 1e−2. 1representaoprimeiropara^metropassadonalinhadecomandousadaparaexecutaroscripteo−2 representa uma cópia do primeiro parâmetro com um – no começo do nome.
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 (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.
1DATA=date +%y%m%d-%H%MSubstituição de comando (crases)
2cp $1 DATA−2Copia 1paraDATA−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).