On 4 February 2010 22:59, Meir Kriheli <[email protected]> wrote: > On 02/04/2010 09:12 PM, Dotan Cohen wrote: >> >> I hope there is a bash guru out there today. I need to script a backup >> plan which has a list of directories that should not be backed up. >> Some of these directories have spaces in their filenames. The >> following script works so long as there are no directories with spaces >> in DONT_COPY, however, I cannot figure out what to do to get it to >> work _with_ spaces in filenames: >> >> #!/bin/bash >> >> DONT_COPY=" >> .adobe/ >> File with Spaces >> .bin/google-earth >> Yet Another Annoying Filename >> " >> >> DONT_COPY_LIST="" >> for pattern in $DONT_COPY ; do DONT_COPY_LIST="$DONT_COPY_LIST >> --exclude=$pattern "; done >> tar -zcvf - * $DONT_COPY_LIST >> >> >> Any ideas? Thanks! >> > > Set IFS to newlines only: > > IFS=$'\n' > > BTW, why don't you use -X or --exclude-from ? From man: > > -X, --exclude-from=FILE > exclude files matching patterns listed in FILE >
Thanks, Meir, I just got this to work: EXCLUDES=`tempfile` cat >$EXCLUDES <<EOLIST $DONT_COPY EOLIST tar -zcvf - * --exclude-from $EXCLUDES > out.tar rm -f $EXCLUDES By the way, because of the "v" flag, tar outputs all the directories that it copies to the terminal (even though this is running in a script). How can I capture that output to a variable or to another temp file? -- Dotan Cohen http://what-is-what.com http://gibberish.co.il Please CC me if you want to be sure that I read your message. I do not read all list mail. _______________________________________________ Linux-il mailing list [email protected] http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
