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
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