Требуется разовая резервная копия двух старых грязных машин с Windows XP из-за разделения компании. Используя минимальную установку CentOS 6 x64, я смонтировал некоторые жесткие диски MS Windows NTFS, установленные локально через ntfs3g и через локальную сеть через smb. Мне нужно самостоятельно задокументировать то, что зарезервировано, и я подумал, что нет лучшего способа, чем писать сценарии с помощью rsync.
Проблема в том, что почти все папки SOURCE имеют пробелы в своих именах. На странице руководства для rsync, похоже, указано, что он поддерживает только несколько источников файлы, а не несколько источников папки. Поэтому я подумал «достаточно просто», создать список и передать каждую исходную папку по одному в rsync.
СЦЕНАРИЙ:
SOURCEWITHSPACES=( "${PREFIX}/'Documents\ and\ Settings'/. ${PREFIX}/'electronic\ claims'/. ${PREFIX}/'billing\ statements'/." )
for P in ${SOURCEWITHSPACES[@]};
do echo $P;
done;
ВЫВОД:
/media/4EC75/'Documents\ and\ Settings'/. /media/4EC75/'electronic\ claims'/. /media/4EC75/'billing\ statements'/.
Поэтому, когда это передается в rsync, он не распознает ни одну из папок SOURCE. Я не хочу делать глобальные копии, потому что должно быть ясно, что именно предназначалось для резервного копирования. Я также пробовал разделять имена папок запятыми и двоеточиями, но это тоже не сработало. Как лучше всего с этим справиться? Перейти на Perl или Python? Пожалуйста, не говорите мне использовать robocopy.exe, поскольку я использовал его в течение многих лет и обнаружил, что он настолько сильно отличается между версиями Windows, что он менее надежен. Кроме того, я никогда не вернусь в Windows.
TAG = spaceinfolderfilenames
Сценарий оболочки должен быть:
SOURCEWITHSPACES=( "${PREFIX}/Documents and Settings/." "${PREFIX}/electronic claims/." "${PREFIX}/billing statements/." )
for P in "${SOURCEWITHSPACES[@]}";
do echo "$P";
done