Script de shell para diretórios de backup

4

Estou executando o eclipse no Windows e gostaria de fazer o backup automático de meus direcórios src para todos os meus projetos. Instalei o cygwin e tentei fazer um script de backup simples, mas estou tendo problemas para especificar corretamente o nome do arquivo de destino. Os backups devem estar no diretório atual.diretório do script.

#!/bin/bash


for f in /cygdrive/c/Documents\ and\ Settings/USERNAME/My\ Documents/Eclipse\ Workspace/*
do
        echo "in folder \"$f\""
        cp -a "$f"/src/ ./????.bak

done

Eu gostaria ???? para ser a pasta do projeto (não o caminho absoluto). Obrigado.

    
por vavix 24.10.2012 / 17:50

2 respostas

4

Acho que a construção de shell que você está procurando é dirname .

for f in /cygdrive/c/Documents\ and\ Settings/USERNAME/My\ Documents/Eclipse\ Workspace/*
do
    cp -a "$f/src/" "./$(dirname "$f").bak"
done

Mas, na verdade, essa não é uma boa solução de backup. Toda vez que você executa a cópia, o estado anterior é apagado. E não fornece nenhum histórico. Use o controle de versão . Use qualquer coisa, até mesmo CVS (cujas funções úteis podem ser aprendidas em menos de uma hora). Qualquer que seja o sistema de controle de versão escolhido:

  1. Crie um repositório.
  2. Faça check-in ou importe seus arquivos existentes.
  3. Sempre que você fizer um pouco de trabalho, comprometa-se.
por 25.10.2012 / 02:17
1

Eu recomendaria usar um sistema de gerenciamento de código fonte como git ou hg (mercurial). Se eles são projetos privados, o BitBucket tem um bom armazenamento de projeto privado de graça (dadas as suas menos de 10 pessoas no projeto). O Git funciona bem no Windows e existe um plugin para o eclipse chamado EGIT que permite sincronizar com um repositório em outro lugar. Para programação, eu definitivamente recomendaria isso ao escrever scripts de backup.

    
por 25.10.2012 / 02:04