--numeric-ids don't map uid/gid values by user/group name
--timeout=TIME set IO timeout in seconds
-I, --ignore-times don't exclude files that match length and time
+ --size-only only use file size when determining if a file should be transferred
-T --temp-dir=DIR create temporary files in directory DIR
--compare-dest=DIR also compare destination files relative to DIR
-z, --compress compress file data
echo $ac_n "checking for working fnmatch... $ac_c"
AC_TRY_RUN([#include <fnmatch.h>
-main() { exit(fnmatch("*.o", "x.o", 0) == 0? 0: 1); }],
+main() { exit(fnmatch("*.o", "x.o", FNM_PATHNAME) == 0? 0: 1); }],
echo yes;AC_DEFINE(HAVE_FNMATCH),
echo no)
only_included_files = 0;
}
ret->regular_exp = 1;
+ ret->fnmatch_flags = strstr(pattern, "**") ? 0 : FNM_PATHNAME;
} else if (!ret->include) {
only_included_files = 0;
}
}
if (ex->regular_exp) {
- if (fnmatch(pattern, name, 0) == 0)
+ if (fnmatch(pattern, name, ex->fnmatch_flags) == 0)
return 1;
} else {
int l1 = strlen(name);
mailto(rsync-bugs@samba.org)
-manpage(rsync)(1)(17 Feb 1999)()()
+manpage(rsync)(1)(18 Feb 1999)()()
manpagename(rsync)(faster, flexible replacement for rcp)
manpagesynopsis()
directory, not a file, link or device.
it() if the pattern contains a wildcard character from the set
- *?[ then regular expression matching is applied using the
- normal shell filename matching rules. Otherwise a simple string
- match is used.
+ *?[ then expression matching is applied using the shell filename
+ matching rules. Otherwise a simple string match is used.
it() if the pattern contains a / (not counting a trailing /) then it
is matched against the full filename, including any leading
directory. If the pattern doesn't contain a / then it is matched
- only against the final component of the filename.
+ only against the final component of the filename. Furthermore, if
+ the pattern includes a double asterisk "**" then all wildcards in
+ the pattern will match slashes, otherwise they will stop at slashes.
it() if the pattern starts with "+ " (a plus followed by a space)
then it is always considered an include pattern, even if specified as
it() --exclude "*.o" would exclude all filenames matching *.o
it() --exclude "/foo" would exclude a file in the base directory called foo
it() --exclude "foo/" would exclude any directory called foo
+ it() --exclude "/foo/*/bar" would exclude any file called bar two
+ levels below a base directory called foo
+ it() --exclude "/foo/**/bar" would exclude any file called bar two
+ or more levels below a base directory called foo
it() --include "*/" --include "*.c" --exclude "*" would include all
directories and C source files
it() --include "foo/" --include "foo/bar.c" --exclude "*" would include