Suponha que no diretório /home/uerj/teste existam os subdire...
O código do script que realiza esse procedimento é:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C
A questão aborda os conceitos de manipulação de arquivos e diretórios utilizando um script em shell, mais especificamente no Bash (Bourne Again SHell). Ela requer o conhecimento de como criar laços de repetição com a estrutura for, a sintaxe para expansão de variáveis e a utilização do comando mv para mover e renomear arquivos.
Para resolver a questão, é necessário compreender como o laço de repetição for funciona no Bash, que é usado para executar um bloco de comandos várias vezes. A sintaxe for ((i=1;i<6;i++))
inicializa a variável i
com o valor 1 e incrementa-a até que seja menor que 6, o que implica que o corpo do loop será executado para os valores de i
de 1 a 5, correspondendo aos diretórios d1 a d5.
Além disso, é essencial entender a sintaxe da expansão de variáveis em strings, indicada por ${i}
, que será substituída pelo valor atual da variável i
durante cada iteração do loop. Assim, /home/uerj/teste/d${i}/a.txt
será expandido para os caminhos dos arquivos dentro dos subdiretórios correspondentes.
O comando mv, utilizado para mover (ou renomear) arquivos, necessita de dois argumentos: o caminho do arquivo fonte e o caminho do arquivo destino. No script, o uso de mv /home/uerj/teste/d${i}/a.txt /home/uerj/teste/a${i}.txt
moverá e renomeará cada arquivo a.txt
do subdiretório d${i}
para o diretório /home/uerj/teste/
adicionando o número do diretório ao nome do arquivo.
A razão pela qual a Alternativa C é correta deve-se ao fato de que ela inclui todos os elementos necessários para a execução do script desejado: o loop correto com a condição i<6
, que assegura que os diretórios d1 até d5 sejam inclusos, o uso do ponto e vírgula para separar os comandos dentro do loop e a palavra-chave do para iniciar o bloco de comandos, seguida pela palavra-chave done para indicar o fim do bloco de comandos do for. A alternativa C é a única que possui a sintaxe correta para um script Bash que realiza a tarefa descrita.
Portanto, é essencial que você tenha uma compreensão sólida de como os laços for funcionam no Bash, assim como a manipulação de strings com variáveis e o comando mv, para resolver essa questão e para trabalhar eficientemente com scripts de shell em geral.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Apenas pela sintaxe do comando é possível matar essa questão sem a necessidade de analisar por completo o código
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo