Mover arquivos conforme nomenclatura

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

[ Hits: 7.406 ]

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

Cadastro em shell

Duplicando CDs de áudio e dados

Mini YouTube Player

NFS

Números impares no intervalo entre 2 números


  

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