Help refining filter

Given the following folder structure within a repository:

TES001summit
TES001summit/cust
TES001summit/cust/content
TES001summit/cust/content/store
TES001summit/cust/content/store/000
TES001summit/cust/content/store/000/000
TES001summit/cust/content/store/000/000/README.txt
TES001summit/cust/content/store/000/001
TES001summit/cust/content/store/000/001/README.txt
TES001summit/cust/content/store/000/README.txt
TES001summit/cust/content/store/001
TES001summit/cust/content/store/001/000
TES001summit/cust/content/store/001/000/README.txt
TES001summit/cust/content/store/001/001
TES001summit/cust/content/store/001/001/README.txt
TES001summit/cust/content/store/001/README.txt
TES001summit/cust/content/store/002
TES001summit/cust/content/store/002/000
TES001summit/cust/content/store/002/000/README.txt
TES001summit/cust/content/store/002/001
TES001summit/cust/content/store/002/001/README.txt
TES001summit/cust/content/store/002/README.txt
TES001summit/cust/content/store/003
TES001summit/cust/content/store/003/000
TES001summit/cust/content/store/003/000/README.txt
TES001summit/cust/content/store/003/001
TES001summit/cust/content/store/003/001/README.txt
TES001summit/cust/content/store/003/README.txt
TES001summit/cust/content/store/004
TES001summit/cust/content/store/004/README.txt
TES001summit/cust/content/store/005
TES001summit/cust/content/store/005/README.txt
TES001summit/cust/content/store/006
TES001summit/cust/content/store/006/README.txt
TES001summit/cust/content/store/007
TES001summit/cust/content/store/007/README.txt
TES001summit/cust/content/store/008
TES001summit/cust/content/store/008/README.txt
TES001summit/cust/content/store/009
TES001summit/cust/content/store/009/README.txt
TES001summit/cust/content/temp
TES001summit/cust/content/temp/README.txt
TES001summit/temp
TES001summit/temp/README.txt
TES001summit/README.txt

and the following filter

-TES001summit/cust/content/store/000/
-TES001summit/cust/content/store/001/
+TES001summit/cust/content/store/
+TES001summit/cust/content/
+TES001summit/cust/
+TES001summit/

I was aiming to include just TES001summit/cust/content/store/* minus the 000 and 001 folders and nothing else.

However whilst the backup correctly excludes 000 and 001 and include 002-009 folders, it seems to actually include everything except 001 and 002, not just the 002-009 folders as intended.

TES001summit/README.txt
TES001summit/cust/content/store/002/README.txt
TES001summit/cust/content/store/002/000/README.txt
TES001summit/cust/content/store/002/001/README.txt
TES001summit/cust/content/store/003/README.txt
TES001summit/cust/content/store/003/000/README.txt
TES001summit/cust/content/store/003/001/README.txt
TES001summit/cust/content/store/004/README.txt
TES001summit/cust/content/store/005/README.txt
TES001summit/cust/content/store/006/README.txt
TES001summit/cust/content/store/007/README.txt
TES001summit/cust/content/store/008/README.txt
TES001summit/cust/content/store/009/README.txt
TES001summit/cust/content/temp/README.txt
TES001summit/temp/README.txt

Not sure I understand why, nor how to prevent it. The following files I do not want (they are representative of ‘other’ files of which there are many in the live setup)

TES001summit/README.txt
TES001summit/cust/content/temp/README.txt
TES001summit/temp/README.txt

I do have a bash(1) script that creates a dummy repository and temp store and creates the test filters and dry-runs them / runs them / lists them.

I will link it somewhere. [Bash] duplicacy-filters - Pastebin.com (test-script)

Since you have both include and exclude patterns, a file that doesn’t match any pattern will be included. To fix that, you’ll need to add +TES001summit/cust/content/store/* to explicitly include anything under this subdirectory, and -* to exclude everything not matching any pattern:

-TES001summit/cust/content/store/000/
-TES001summit/cust/content/store/001/
+TES001summit/cust/content/store/*
+TES001summit/cust/content/
+TES001summit/cust/
+TES001summit/
-*
2 Likes

I had tried -* at the bottom, and that excluded everything, which confused me, it did not occur to me to them add store/*.

Working now, Thanks.