Mover arquivos conforme nomenclatura

Publicado por WILLIAM FELIPE DUTRA ABREU DA SILVA (última atualização em 09/07/2014)

[ Hits: 7.691 ]

Homepage: www.itadmin.com.br

Download 5939.script.sh

Download 1404738993.5939.script.sh (versão 2)




Script gerado para atender à necessidade solicitada:

http://www.vivaolinux.com.br/topico/Perolas-da-Ostra-(Dicas)/Criando-diretorio-e-Mover-arquivo-1/

  



Versões atualizadas deste script

Versão 2 - Enviado por Vitor Augusto M. Pio em 07/07/2014

Changelog: Esta nova versão ficou menor e adicionei um arquivo de log, seria útil adicionar o horário de transferência ao log. Vou deixar isto para outro programador que deseja contribuir.

Um abraço e obrigado pelo script!

Download 1404738993.5939.script.sh


Esconder código-fonte

#!/bin/bash
#----------------------------------------------------------------------
#DATA      - 07 DE JANEIRO DE 2014
#AUTOR     - WILLIAM FELIPE
#EMAIL     - WILLIAM.FDBS@GMAIL.COM
#OBJETIVO  - SUPRIR NECESSIDADE DE MOVER ARQUIVOS CONFORME NOMENCLATURA
#ASSOCIADO - PEDIDO VIVAOLINUX
#USUARIO   - acoscarelli
#----------------------------------------------------------------------

#OBS= AJUSTAR CAMINHOS CONFORME NECESSIDADE
#Pasta onde ficam os arquivos PDF
ARQUIVOS=/tmp/testes/arquivos

#Diretorio onde serao criadas as pastas
#DIR="/home/diretorio/gestao/"
DIR="/tmp/testes/home/diretorio/gestao"

#Temporarios
TEMP=/tmp/testes/temporarios.txt

#Inicio do script
ls $ARQUIVOS > $TEMP
for i in  `cat $TEMP`
do

VAR1=`echo $i | cut -c1 `
VAR2=`echo $i | cut -c2,3,4 `
VAR3=`echo $i | cut -f2 -d '_' `
VAR4=`echo $i | cut -f3 -d '_' | cut -c6,7,8,9 `

        #Verifica se VAR1 = S
        if [ $VAR1 = "S" ]
        then
            #Verifica se o diretorio S existe
            #Se existir continua, se não cria e continua
            ls $DIR/$VAR1 2>/dev/null >/dev/null && ( continue ) || ( mkdir -p $DIR/$VAR1 )
            if [ $? -eq 0 ]
            then
                #Verifica VAR2
                if [ $VAR2 = 531 ]
                then
                    #Verifica se o diretorio 531 existe
                    #Se existir continua, se não cria e continua
                    ls $DIR/$VAR1/$VAR2 2>/dev/null >/dev/null && ( continue ) || ( mkdir -p $DIR/$VAR1/$VAR2 )
                    if [ $? -eq 0 ]
                    then
                        #Verifica VAR3
                        if [ $VAR3 = 037 ]
                        then
                            #Verifica se o diretorio 037 existe
                            #Se existir continua, se nao cria e continua
                            ls $DIR/$VAR1/$VAR2/$VAR3 2>/dev/null >/dev/null && ( continue ) || ( mkdir -p $DIR/$VAR1/$VAR2/$VAR3 )
                            if [ $? -eq 0 ]
                            then
                                #Verifica se diretorio $VAR4 existe
                                #Se existir continua, se nao cria e continua
                                ls $DIR/$VAR1/$VAR2/$VAR3/$VAR4 2>/dev/null >/dev/null && ( continue ) || ( mkdir -p $DIR/$VAR1/$VAR2/$VAR3/$VAR4 )
                                if [ $? -eq 0 ]
                                then
                                    #Move o arquivo para destino final
                                    mv $ARQUIVOS/$i $DIR/$VAR1/$VAR2/$VAR3/$VAR4
                                    if [ $? -eq 0 ]
                                    then
                                        echo "Arquivo $VAR4 movido para $DIR/$VAR1/$VAR2/$VAR3/$VAR4 com sucesso!!!"
                                    else
                                        echo "ERRO - Erro ao mover arquivo $VAR4 para $DIR/$VAR1/$VAR2/$VAR3/$VAR4, verifique !!!"
                                    fi
                                fi
                            fi
                        fi
                    fi
                fi
            fi
        fi
done

Scripts recomendados

Adicionar usuários para serem autenticados pelo squid

Calendário Dialog (exemplo)

Atualizando pacotes no Ubuntu

Bate papo com Davi

Iniciando Linux com tudo


  

Comentários
[1] Comentário enviado por vitinho217 em 07/07/2014 - 09:44h

Não entendi o uso deste if: if [ $? -eq 0 ]

Na linha anterior você já verificou se a pasta existe e caso não existir você cria ela, qual a ncessidade de verificar o retorno da instrução ?

Um abraço, Vitor


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts