On Sat, Apr 28, 2018 at 04:36:00AM -0400, Robert Bowers wrote: > now, i want to exclude any empty.file in a first level directory (relative to > /tmp/zzz). > # cat /tmp/zzz.excludes > /tmp/zzz/*/empty.file
* matches with / as well. So that will exclude any filename beginning with: /tmp/zzz/ and ending in: /empty.file > ummm. no. the tmp/zzz/?/???/empty.file (s) should be there? Unfortunately not. As noted in http://www.tarsnap.com/selecting-files.html the behaviour of --include and --exclude comes from BSD tar. For example, "In particular, 'a*b' will match 'foo/a1111/222b/bar" https://github.com/libarchive/libarchive/blob/master/libarchive/archive_match.c#L749 > i thought to do that it would need an exclude like /tmp/zzz/**/empty.file . > also, if * matches anything or *nothing at all*, why does tmp/zzz/empty.file > get grabbed as > # ls -al /tmp/zzz//empty.file > -rw-r----- 1 root root 0 2018-04-28 08:15 /tmp/zzz//empty.file > would match? The normal path listing returns /tmp/zzz/empty.file so the exclude doesn't match it. If the filename was printed as /tmp/zzz//empty.file or /tmp/zzz///empty.file then it would match. If you wanted to exclude the top-level empty.file, you could use the exclude /tmp/zzz/*empty.file I personally find include & exclude rather confusing. Would the nodump flag work in your case? http://www.tarsnap.com/selecting-files.html Cheers, - Graham