⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exclude.test

📁 Rsync 3.0.5 source code
💻 TEST
字号:
#! /bin/sh# Copyright (C) 2003, 2004, 2005 by Wayne Davison <wayned@samba.org># This program is distributable under the terms of the GNU GPL (see# COPYING).# Test rsync handling of exclude/include directives.# Test some of the more obscure wildcard handling of exclude/include# processing.. "$suitedir/rsync.fns"CVSIGNORE='*.junk'export CVSIGNORE# Build some files/dirs/links to copymakepath "$fromdir/foo/down/to/you"makepath "$fromdir/foo/sub"makepath "$fromdir/bar/down/to/foo/too"makepath "$fromdir/bar/down/to/bar/baz"makepath "$fromdir/mid/for/foo/and/that/is/who"makepath "$fromdir/new/keep/this"makepath "$fromdir/new/lose/this"cat >"$fromdir/.filt" <<EOFexclude down: .filt-tempclear- .filt- *.bak- *.oldEOFecho filtered-1 >"$fromdir/foo/file1"echo removed >"$fromdir/foo/file2"echo cvsout >"$fromdir/foo/file2.old"cat >"$fromdir/foo/.filt" <<EOFinclude .filt- /file1EOFecho not-filtered-1 >"$fromdir/foo/sub/file1"cat >"$fromdir/bar/.filt" <<EOF- home-cvs-excludedir-merge .filt2+ toEOFecho cvsout >"$fromdir/bar/down/to/home-cvs-exclude"cat >"$fromdir/bar/down/to/.filt2" <<EOF- .filt2EOFcat >"$fromdir/bar/down/to/foo/.filt2" <<EOF+ *.junkEOFecho keeper >"$fromdir/bar/down/to/foo/file1"echo cvsout >"$fromdir/bar/down/to/foo/file1.bak"echo gone >"$fromdir/bar/down/to/foo/file3"echo lost >"$fromdir/bar/down/to/foo/file4"echo weird >"$fromdir/bar/down/to/foo/+ file3"echo cvsout-but-filtin >"$fromdir/bar/down/to/foo/file4.junk"echo smashed >"$fromdir/bar/down/to/foo/to"cat >"$fromdir/bar/down/to/bar/.filt2" <<EOF- *.deepEOFecho filtout >"$fromdir/bar/down/to/bar/baz/file5.deep"# This one should be ineffectualcat >"$fromdir/mid/.filt2" <<EOF- extraEOFecho cvsout >"$fromdir/mid/one-in-one-out"echo one-in-one-out >"$fromdir/mid/.cvsignore"echo cvsin >"$fromdir/mid/one-for-all"cat >"$fromdir/mid/.filt" <<EOF:CEOFecho cvsin >"$fromdir/mid/for/one-in-one-out"echo expunged >"$fromdir/mid/for/foo/extra"echo retained >"$fromdir/mid/for/foo/keep"# Setup our test exclude/include files.excl="$scratchdir/exclude-from"cat >"$excl" <<EOF!# If the second line of these two lines does anything, it's a bug.+ **/bar- /bar# This should match against the whole path, not just the name.+ foo**too# These should float at the end of the path.+ foo/s?b/- foo/*/# Test how /** differs from /***- new/keep/**- new/lose/***# Test some normal excludes.  Competing lines are paired.+ t[o]/- to+ file4- file[2-9]- /mid/for/foo/extraEOFcat >"$scratchdir/.cvsignore" <<EOFhome-cvs-excludeEOF# Start with a check of --prune-empty-dirs:$RSYNC -av -f -_foo/too/ -f -_foo/down/ -f -_foo/and/ -f -_new/ "$fromdir/" "$chkdir/"checkit "$RSYNC -av --prune-empty-dirs '$fromdir/' '$todir/'" "$chkdir" "$todir"rm -rf "$todir"# Add a directory symlink.ln -s too "$fromdir/bar/down/to/foo/sym"# Create chkdir with what we expect to be excluded.checkit "$RSYNC -avv '$fromdir/' '$chkdir/'" "$fromdir" "$chkdir"sleep 1 # Ensures that the rm commands will tweak the directory times.rm -r "$chkdir"/foo/downrm -r "$chkdir"/mid/for/foo/andrm -r "$chkdir"/new/keep/thisrm -r "$chkdir"/new/loserm "$chkdir"/foo/file[235-9]rm "$chkdir"/bar/down/to/foo/to "$chkdir"/bar/down/to/foo/file[235-9]rm "$chkdir"/mid/for/foo/extra# Un-tweak the directory times in our first (weak) exclude test (though# it's a good test of the --existing option).$RSYNC -av --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/"# Now, test if rsync excludes the same files.checkit "$RSYNC -avv --exclude-from='$excl' \    --delete-during '$fromdir/' '$todir/'" "$chkdir" "$todir"# Modify the chk dir by removing cvs-ignored files and then tweaking the dir times.rm "$chkdir"/foo/*.oldrm "$chkdir"/bar/down/to/foo/*.bakrm "$chkdir"/bar/down/to/foo/*.junkrm "$chkdir"/bar/down/to/home-cvs-excluderm "$chkdir"/mid/one-in-one-out$RSYNC -av --existing --filter='exclude,! */' "$fromdir/" "$chkdir/"# Now, test if rsync excludes the same files, this time with --cvs-exclude# and --delete-excluded.checkit "$RSYNC -avvC --filter='merge $excl' --delete-excluded \    --delete-during '$fromdir/' '$todir/'" "$chkdir" "$todir"# Modify the chk dir for our merge-exclude test and then tweak the dir times.rm "$chkdir"/foo/file1rm "$chkdir"/bar/down/to/bar/baz/*.deepcp_touch "$fromdir"/bar/down/to/foo/*.junk "$chkdir"/bar/down/to/foocp_touch "$fromdir"/bar/down/to/foo/to "$chkdir"/bar/down/to/foo$RSYNC -av --existing -f 'show .filt*' -f 'hide,! */' --del "$fromdir/" "$todir/"echo retained >"$todir"/bar/down/to/bar/baz/nodel.deepcp_touch "$todir"/bar/down/to/bar/baz/nodel.deep "$chkdir"/bar/down/to/bar/baz$RSYNC -av --existing --filter='-! */' "$fromdir/" "$chkdir/"# Now, test if rsync excludes the same files, this time with a merge-exclude# file.checkit "sed '/!/d' '$excl' |    $RSYNC -avv -f dir-merge_.filt -f merge_- \    --delete-during '$fromdir/' '$todir/'" "$chkdir" "$todir"# Remove the files that will be deleted.rm "$chkdir"/.filtrm "$chkdir"/bar/.filtrm "$chkdir"/bar/down/to/.filt2rm "$chkdir"/bar/down/to/foo/.filt2rm "$chkdir"/bar/down/to/bar/.filt2rm "$chkdir"/mid/.filt$RSYNC -av --protocol=28 --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/"# Now, try the prior command with --delete-before and some side-specific# rules.checkit "sed '/!/d' '$excl' |    $RSYNC -avv -f :s_.filt -f .s_- -f P_nodel.deep \    --delete-before '$fromdir/' '$todir/'" "$chkdir" "$todir"# Next, we'll test some rule-restricted filter files.cat >"$fromdir/bar/down/.excl" <<EOFfile3EOFcat >"$fromdir/bar/down/to/foo/.excl" <<EOF+ file3*.bakEOF$RSYNC -av --del "$fromdir/" "$chkdir/"rm "$chkdir/bar/down/to/foo/file1.bak"rm "$chkdir/bar/down/to/foo/file3"rm "$chkdir/bar/down/to/foo/+ file3"$RSYNC -av --existing --filter='-! */' "$fromdir/" "$chkdir/"$RSYNC -av --delete-excluded --exclude='*' "$fromdir/" "$todir/"checkit "$RSYNC -avv -f dir-merge,-_.excl \    '$fromdir/' '$todir/'" "$chkdir" "$todir"relative_opts='--relative --chmod=Du+w --copy-unsafe-links'$RSYNC -av $relative_opts "$fromdir/foo" "$chkdir/"rm -rf "$chkdir$fromdir/foo/down"$RSYNC -av $relative_opts --existing --filter='-! */' "$fromdir/foo" "$chkdir/"checkit "$RSYNC -avv $relative_opts --exclude='$fromdir/foo/down' \    '$fromdir/foo' '$todir'" "$chkdir$fromdir/foo" "$todir$fromdir/foo"# The script would have aborted on error, so getting here means we've won.exit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -