Filenames with blanks

jw schultz jw at pegasys.ws
Sat Aug 24 12:12:01 EST 2002


On Sat, Aug 24, 2002 at 04:20:21PM -0400, Ivan kovalev wrote:
> I do scan SRC. I have there a big set of files and I need to have a latest
> subset on TARG. Therefore I could not just say: transfer whatever is not
> on TARG. This is the reason to check only newer files.

So what you have is a destination where only recently
changed files reside.  Now it makes sense.

Sorry, i missed the single-quotes around the backticks.
I just ran a quick test and found that the rsync process on
the server (via ssh) had sshd as it's immediate parent.
This means that a shell was not invoked and any command-line
interpolation, et-al was done by sshd itself.  If the
backticks are getting interpolated/expanded it is sshd that
is doing it so you are lucky to get anything to work right.

My first suggestion would be to push the files.

If pushing isn't possible try using a shell script that
execs rsync and specify it with the --rsync-path option.

	rsync  -rxlupogtSvv -e ssh \
		--rsync-path=/usr/local/sbin/rsync_changed \
		$src_host:"$src_dir -mtime +4" $targ_dir

You will have to make sense of the command line but that
shouldn't be to difficult.

> On Sat, 24 Aug 2002, jw schultz wrote:
> 
> > On Sat, Aug 24, 2002 at 10:05:26AM -0400, Ivan kovalev wrote:
> > > I did not see Tim's note and what you tell about it sounds like
> > > misunderstanding.
> > >
> > > I am scanning src_host for files changed during last $days to update my
> > > targ_dir on targ_host. Yes, if I do whole directory from the source
> > > host, it works fine with "foo bar" files. The reason I do not want this is
> > > because I need a subset of files only. Imagine big archive from which I
> > > need to update just last couple of days.
> >
> > Your example does not scan src_host it scans targ_host.
> >
> > What is the basis for selecting the subset?  Your example
> > only diferentiates on time and filetype and rsync does time
> > internally.
> >
> > > You are right about -r option: it does nothing when I operate on the list
> > > of files.
> > >
> > > Quotes: I do put them around COM ( tried even "\"$COM\""). It looks to me
> > > like if I put quotes inside COM, then rsynk looks for filenames
> > > that include quotes as part of the name. If the qoutes are outside, then
> > > none of the files with blanks in the name could be found because they
> > > are treated as 2 files.
> > >
> > > So, what is the correct syntax for quoting?
> > >
> > >
> > > On Fri, 23 Aug 2002, jw schultz wrote:
> > >
> > > > On Fri, Aug 23, 2002 at 06:09:21PM -0400, Ivan Kovalev wrote:
> > > > > Command like this:
> > > > >     rsync  -rxlupogtSvve ssh
> > > > > $src_host:"/home/wss_disk/calendar.data/'Conference Calls'" $targ_dir
> > > > > works fine with blanks embeded in the file name.
> > > > > When I try to script it like this:
> > > > >     COM='`find '$src_dir'  -mtime -'$days' -type f `'
> > > > >     rsync  -rxlupogtSvve ssh  $src_host:"$COM" $targ_dir
> > > > > works fine on regular filenames, but does not see the ones with blanks
> > > > > in the middle.
> > > > >
> > > > > I changed my COM to pipe through little script to produce the same
> > > > > output where either the whole filepath or just the file name will be
> > > > > quoted (as in the first example). That breakes it complitely and this
> > > > > version does not work even for single word files. Output looks like
> > > > > this:
> > > > > .......................
> > > > > receiving file list ...
> > > > > link_stat /home/wss_disk/calendar.data/'Conference : No such file or
> > > > > directory
> > > > > link_stat Calls' : No such file or directory
> > > > > link_stat /home/wss_disk/calendar.data/'Economic' : No such file or
> > > > > directory
> > > > >
> > > > > I probably am missing something simple, but could not figure what is it.
> > > > > Please advise. Thank you.
> > > >
> > > > As Tim pointed out scanning $dest_host for files that
> > > > were recently modified to overwrite them if they were
> > > > changed on the $src_host makes very little sense.
> > > >
> > > > rsync handles file names with spaces just fine if you let
> > > > it.  Why do you think you need to create this file list in
> > > > the first place when you are using the -r option?
> > > >
> > > > Based on your design decisions i doubt that you quite
> > > > understood  understood what Tim meant by a list so i'll
> > > > illustrate.  Your find operation means that $COM is set to
> > > > something like
> > > > 	/home/wss_disk/calendar.data/Conference foo
> > > > 	/home/wss_disk/calendar.data/Economic bar
> > > >
> > > > The result being this command line
> > > > 	rsync  -rxlupogtSvve ssh $src_host:"/home/wss_disk/calendar.data/Conference foo /home/wss_disk/calendar.data/Economic bar" $targ_dir
> > > >
> > > > Putting quote marks inside $COM won't protect the spaces.
> > > > The quotes have to be outside of $COM.
> > > >
> > > > If you can explain why you need the find instead of doing
> > > > 	rsync  -rxlupogtSvv -e ssh $src_host:$src_dir/ $targ_dir
> > > > I'll be glad to show you how.
> > > >
> > > > --
> > > > ________________________________________________________________
> > > > 	J.W. Schultz            Pegasystems Technologies
> > > > 	email address:		jw at pegasys.ws
> > > >
> > > > 		Remember Cernan and Schmitt
> > > >
> > >
> > > --
> > > To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
> > > Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html
> >
> > --
> > ________________________________________________________________
> > 	J.W. Schultz            Pegasystems Technologies
> > 	email address:		jw at pegasys.ws
> >
> > 		Remember Cernan and Schmitt
> >
> 
> -- 
> To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
> Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html

-- 
________________________________________________________________
	J.W. Schultz            Pegasystems Technologies
	email address:		jw at pegasys.ws

		Remember Cernan and Schmitt



More information about the rsync mailing list