Copiar arquivos com data por mês [RESOLVIDO]

1. Copiar arquivos com data por mês [RESOLVIDO]

Jonathan Faria
jonathan.hfaria

(usa Fedora)

Enviado em 22/11/2016 - 14:48h

Boa tarde Galera!
Sou novo no fórum e estou precisando de uma ajuda.
Preciso criar um script para copiar arquivos com data de modificação do mês corrente para outra.
exemplo:se o arquivo foi modificado em novembro copia para a pasta novembro.Terminou o mês,os arquivos tem que ser copiados para
a pasta dezembro.
Sou ainda inexperiente em shell script e não sei como tratar esta situação.
O que conseguir pensar foi:
#!/bin/bash
ANO=$(date +%Y)
MES=$(date | awk '{print $2}') #Vai retornar so o mes corrente(Nov)
DATAARQUIVO=$(ls -l /home/jonathan/cfe/*.xml | awk '{print $6}') #Também vai retornar somente o mes dos arquivos (Out,Nov)##Na verdade vai retornar so a data dos arquivos e nao os arquivos mesmo,mas nao consegui chegar a uma conclusao logica pra isso.

if [ ! $MES = $ARQUIVO ];
then
cp -n -p -v /home/jonathan/cfe/*.xml /mnt/$ANO/$MES
fi
##############################
Aparece um erro de excesso de argumentos,ja que ls vai printar o mes de todos os arquivos.
Alguem poderia me ajudar a resolver?
Desde já agradeço.






  


2. Re: Copiar arquivos com data por mês [RESOLVIDO]

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 22/11/2016 - 15:56h

jonathan.hfaria escreveu:

Boa tarde Galera!
Sou novo no fórum e estou precisando de uma ajuda.
Preciso criar um script para copiar arquivos com data de modificação do mês corrente para outra.
exemplo:se o arquivo foi modificado em novembro copia para a pasta novembro.Terminou o mês,os arquivos tem que ser copiados para
a pasta dezembro.
Sou ainda inexperiente em shell script e não sei como tratar esta situação.
O que conseguir pensar foi:
#!/bin/bash
ANO=$(date +%Y)
MES=$(date | awk '{print $2}') #Vai retornar so o mes corrente(Nov)
DATAARQUIVO=$(ls -l /home/jonathan/cfe/*.xml | awk '{print $6}') #Também vai retornar somente o mes dos arquivos (Out,Nov)

if [ ! $MES = $ARQUIVO ];
then
cp -n -p -v /home/jonathan/cfe/*.xml /mnt/$ANO/$MES
fi
##############################
Aparece um erro de excesso de argumentos,ja que ls vai printar o mes de todos os arquivos.
Alguem poderia me ajudar a resolver?
Desde já agradeço.





Boa tarde, estou usando um diretorio ficticio mas você pode adaptar as variaveis da forma que desejar

#!/bin/bash

ANO=$(date +'%Y')
MES=$(date | awk '{print $2}')
DIR='/etc'
DESTINO='/home/marcos'
for arq in `ls $DIR/*.conf`; do
MES_ARQ=$(ls -l $arq | awk '{print $6}')
ANO_ARQ=$(ls --full-time $arq | awk '{print $6}' | cut -d'-' -f1)
if [ "$ANO" -eq "$ANO_ARQ" ]; then
if [ "$MES" = "$MES_ARQ" ]; then
mkdir -p $DESTINO/$ANO/$MES
cp -n -p -v $arq $DESTINO/$ANO/$MES/
fi
fi
done







3. Re: Copiar arquivos com data por mês [RESOLVIDO]

Jonathan Faria
jonathan.hfaria

(usa Fedora)

Enviado em 22/11/2016 - 16:39h

Deu certo,era isso mesmo que precisava.
Agradeço a ajuda .


4. Re: Copiar arquivos com data por mês [RESOLVIDO]

Marcos Felipe
plimo263

(usa Ubuntu)

Enviado em 22/11/2016 - 17:07h

jonathan.hfaria escreveu:

Deu certo,era isso mesmo que precisava.
Agradeço a ajuda .


Beleza amigo, valeu






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts