Programação de Scripts - Atividade 08

Leia com atenção as instruções abaixo.

Preparação do Repositório.

Crie um repositório privado no GitHub. Repositórios públicos levarão nota zero automaticamente. Se seu nome for José Carlos Silva, o repositório deve ter o nome josecarlosscripts20202. Primeiro e segundo nome, sufixo scripts20202, tudo minúsculo. É nele que devem ser colocados os arquivos. Convide o professor (jmarcelo.alencar@gmail.com) para ser colaborador do repositório. Faz parte da avaliação utilizar o GitHub de forma correta.

Dentro do repositório crie uma pasta chamada atividades. Dentro desta pasta você colocará os arquivos de cada atividade. Por exemplo, os arquivos da Atividade 01 devem estar na pasta atividades/atividade01.

Formato da Entrega:

Valor: 1,0 ponto na 2ª Nota.

Data da Entrega Limite: 20/01/2021

Coloque os arquivos na pasta atividades/atividade08.

Questão 01 - 1,0 Ponto

Crie um script chamado organizarPorData.sh. Ele deve receber dois parâmetros. Sua invocação será da seguinte forma:

 $ ./organizarPorData.sh DIR1 DIR2
                        

O parâmetro DIR1 é o caminho para um diretório que contém apenas arquivos, sem subdiretórios. Para cada arquivo em DIR1, o script deve recuperar a data de modificação, incluindo o ano, mês e dia. O arquivo deve então ser copiado para o diretório DIR2, mas deve ser colocado em um diretório no formado DIR2/YYYY/MM/DD, onde YYYY, MM e DD são o ano, mês e dia da data de modificação, respectivamente.

Por exemplo, considere que o arquivo DIR1/teste.txt tem a data de modificação "2013-10-16 13:28:52". Ele deve ser copiado para o diretório DIR2/2013/10/16. Arquivos com a mesma data de modificação devem ficar no mesmo diretório.

Dica: para testar seu script, você pode usar o programa abaixo. Ele cria aleatoriamente um diretório com arquivos com datas de modificações diferentes.

 #!/bin/bash

 mkdir teste;
 
 for i in $(seq 10)
 do 
     ano=$(shuf -e 2009 2010 2011 2012 2013 | tail -n 1);
     mes=$(shuf -e 01 02 03 04 05 06 07 08 09 10 11 12 | tail -n 1);
     dia=$(shuf -e 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | tail -n 1);
     touch -m -t ${ano}${mes}${dia}0000 teste/arquivo$i.txt 
 done