This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: bash and variable holding directories with spaces

Brian Dessent wrote:
> "H.S." wrote:
>>In the script, I am faced with this problem of defining the source
>>directories (dirs on the remote machine to be backed up) in a bash
>>variable. I want to define a variable DIRS so that it expands to:
>>'/cygdrive/c/Documents\ and\ Settings /cygdrive/d/My\ Data'
>>*with* the quotes, to copy "/cygdrive/c/Documents and Settings" and
>>"/cygdrive/d/My Data" to my local machine. I want to use this variable
>>in the rsync command, like so:
>>rsync -av remotehost:$DIRS /mnt/backups
>>I have tried a few ways to define the DIRS variable, but I am able to
>>get quotes in the expanded value of the variable.
> You have to quote $DIRS when you use it otherwise it will be expanded
> into multiple words.
> DIRS='/cygdrive/c/Documents\ and\ Settings /cygdrive/d/My\ Data'
> rsync -av "remotehost:$DIRS" /mnt/backups
> If it were me I think I'd just use mount to get rid of the spaces.
> Brian

Yup, it works perfectly:

$> DIRS='/cygdrive/c/Documents\ and\ Settings/user1
/cygdrive/c/Documents\ and\ Settings/user2'; rsync -n -avz
--exclude=Application* --exclude=Local?Sett* "ice:$DIRS" ./

Thanks a ton.

BTW, how to use mount to deal with spaces?


Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]