Bom dia pessoal.
Estou tentando montar um script que vai ler os arquivos de um diretório e gostaria que ele pegasse a data do nome do arquivo e criasse o diretório e movesse o arquivo para dentro dele...
Arquivos
Classificados 01-07-2023.pdf
Classificados 02-07-2023.pdf
Classificados 03-07-2023.pdf
....
Eu preciso criar a pasta
2023
07
01
Classificados_20230107.pdf
02
Classificados_20230207.pdf
e assim por diante..
Alguma sugestão de melhoria desse script abaixo que não está funcionando..kk
Script que montei até o momento.
#!/bin/bash
# Diretório onde os arquivos estão localizados
diretorio="/srv/Flip/Classificados"
# Percorre todos os arquivos no diretório
for arquivo in "$diretorio"/Classificados*.pdf; do
if [ -f "$arquivo" ]; then
# Extrai a data do nome do arquivo
data_str=$(basename "$arquivo" | cut -d ' ' -f 2 | cut -d '.' -f 1)
data="" -d "$data_str" +"%d-%m-%Y")
# Extrai ano, mês e dia da data
ano=$(date -d "$data" +"%Y")
mes=$(date -d "$data" +"%m")
dia=$(date -d "$data" +"%d")
# Cria a estrutura de pastas com base na data
pasta_ano="$diretorio/$ano"
pasta_mes="$pasta_ano/$mes"
pasta_dia="$pasta_mes/$dia"
mkdir -p "$pasta_dia"
echo $arquivo
# Move o arquivo para a pasta correspondente à data
cp "$arquivo" "$pasta_dia"
fi
done
Atenciosamente
Thiago Guimarães Corrêa Keuchguerian
Fone: (017) 9-8804-2658. (Operadora Oi)
Skype: thi.keuchguerian