Múltiplos espaços em pastas e arquivos para backup rsync via / bin / bash / bin / sh

1

Precisa de um backup único de duas máquinas antigas do Windows XP devido a uma divisão da empresa. Usando o CentOS 6 x64, instalei alguns discos rígidos MS Windows NTFS instalados localmente via ntfs3g e pela LAN via smb. Eu preciso auto-documentar o que é feito backup e pensei que não haveria nenhuma maneira melhor do que o script de tudo feito com o rsync.

O problema é que quase todas as pastas SOURCE possuem espaços em seus nomes. A página man do rsync parece indicar que ele suporta apenas vários arquivos , não várias pastas . Então eu pensei "fácil o suficiente", crie uma lista e passe cada pasta de origem uma por vez para o rsync.

SCRIPT:


SOURCEWITHSPACES=( "${PREFIX}/'Documents\ and\ Settings'/.  ${PREFIX}/'electronic\ claims'/.  ${PREFIX}/'billing\ statements'/." )
for P in ${SOURCEWITHSPACES[@]}; 
  do echo $P; 
done;

OUTPUT:

/media/4EC75/'Documents\
and\
Settings'/.
/media/4EC75/'electronic\
claims'/.
/media/4EC75/'billing\
statements'/.

Portanto, quando isso é passado ao rsync, ele não reconhece nenhuma das pastas SOURCE. Eu não quero glob porque precisa ser claro exatamente o que deveria ser feito backup. Eu também tentei vírgula e dois pontos separando os nomes das pastas, mas isso não funcionou também. Qual é a maneira confiável de lidar com isso? Mudar para perl ou python? Por favor, não me diga para usar robocopy.exe como eu tenho usado por anos e achei que diferem tanto entre as versões do Windows, é menos confiável. Além disso, eu nunca vou voltar para o Windows.

TAG = spacesinfolderfilenames

    
por rjt 04.05.2013 / 21:49

1 resposta

2

O script de shell deve ser:

SOURCEWITHSPACES=( "${PREFIX}/Documents and Settings/." "${PREFIX}/electronic claims/."  "${PREFIX}/billing statements/." )
for P in "${SOURCEWITHSPACES[@]}";
    do echo "$P";
done
    
por 04.05.2013 / 22:23