Mover arquivos conforme nomenclatura
Script gerado para atender à necessidade solicitada:
http://www.vivaolinux.com.br/topico/Perolas-da-Ostra-(Dicas)/Criando-diretorio-e-Mover-arquivo-1/
http://www.vivaolinux.com.br/topico/Perolas-da-Ostra-(Dicas)/Criando-diretorio-e-Mover-arquivo-1/
Descrição
Script gerado para atender à necessidade solicitada:
http://www.vivaolinux.com.br/topico/Perolas-da-Ostra-(Dicas)/Criando-diretorio-e-Mover-arquivo-1/
http://www.vivaolinux.com.br/topico/Perolas-da-Ostra-(Dicas)/Criando-diretorio-e-Mover-arquivo-1/
Versões atualizadas deste script
#!/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
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