This is bothering me for years now, my backup script always takes everything with it, taking forever to finish.
I initially used the --exclude
option, but this is rather restrictive, cluttered the script and still had the excluded directories.
Then i discovered -X/--exclude-from
but same result here, weird globbing and still fails.
So i hacked a negative list via fd’s --ignore-file
and tar -T/--files-from
together. But tar still includes files and directories not on the fucking files.tmp.
So i’m not sure if it is a bug in Arch’s GNU tar or if it’s maybe a parameter in the wrong position, tar can be removed there. This is my current code
# tar -cf - -X "$XDG_CONFIG_HOME"/backup/ignore "$INPUT" -P
fd . -Hi --ignore-file "$XDG_CONFIG_HOME"/backup/ignore "${INPUT}" > "$_tmpfile"
tar -cf - --verbatim-files-from --files-from="$_tmpfile" -P \
|pv -tapes "$_fssize" \
|compress >"${OUTPUT}.$_ext"
INPUT is $HOME in this case.
And if anyone has a solution that works on busybox tar as well…
…more fancy such as using tar -X, which works for me. I’d never actually tried it before. The ‘weird globbing’ it uses is regular expressions, which are worth learning how to use. Run
grep "$expression" $_tmpfile
where $expression is a line from your exclude file to see which files it’s going to match and exclude.