renameciclefile.sh

Publicado por Ricardo Brito do Nascimento 09/05/2008

[ Hits: 3.697 ]

Homepage: http://brito.blog.incolume.com.br

Download renameciclefile.sh




Muitas vezes é preciso renomear uma dezenas de arquivos, log, backup, etc. sem perder a sequência.

Este script foi criado para realizar esta tarefa repetitiva e livrar o tempo para pensar em um comando shell para realizá-la.

  



Esconder código-fonte

#!/bin/sh
# vim: set sw=4 ts=4 et:
VER="1"
USO="$0 [-h|--help|?] arquivo"
MAX=100


_help(){
    cat << fim
$0 -- renomeação seriada de arquivos
uso: $USO
opções: -h --help ? nome_do_arquivo

exemplo: $0 arq = Isto irah renomeiar todos os arquivos
    que começam. o arq -> arq.1, arq.1 -> arq.2 e criar um novo arq
    vazio.

version: $ver
limite: $MAX
fim
   exit 0
}

_error()
{
    echo "$1"
    exit 1
}

while [ -n "$1" ]; do
case $1 in
    -h|--help|?) _help;shift 1;;
    --) break;;
    -*) echo "erro: no such option $1. -h for help";exit 1;;
     *) break;;
esac
done


# verificação de input:
if [ -z "$1" ] ; then
 _error "ERRO: têm de especificar um arquivo, utiliza -h para ajuda"
fi
filen="$1"

# renomeia qualquer arquivos .1, .2, .3, etc:
for ((n=$MAX; n>=0; n--)); do 
    if [ -f $filen.$n ]; then 
        p=`expr $n + 1`; 
        echo "mv $filen.$n $filen.$p"; 
        mv $filen.$n $filen.$p; 
    fi; 
done

# renomeia o ficheiro original:
if [ -f "$filen" ]; then
   echo "mv $filen $filen.1"
   mv $filen $filen.1
   #echo checkpoint2
fi
#echo touch $filen
touch $filen

Scripts recomendados

Copiando arquivos de uma so vez para todos usuarios

Limpando Cache Squid

Adicionar usuarios em lote com senha padrao

VPN automática entre sites

Backup com rsync e ssh


  

Comentários
[1] Comentário enviado por SMarcell em 17/05/2008 - 18:07h

Script com o mesmo propósito:

http://www.slackbr.org/forum/viewtopic.php?f=45&t=15052


Contribuir com comentário