How to reliably(!) exclude files from a list in tar?
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 bitchy there. This is my current code
<span style="color:#323232;"># tar -cf - -X "$XDG_CONFIG_HOME"/backup/ignore "$INPUT" -P
</span><span style="color:#323232;">
</span><span style="color:#323232;">fd . -Hi --ignore-file "$XDG_CONFIG_HOME"/backup/ignore "${INPUT}" > "$_tmpfile"
</span><span style="color:#323232;">tar -cf - --verbatim-files-from --files-from="$_tmpfile" -P
</span><span style="color:#323232;"> |pv -tapes "$_fssize"
</span><span style="color:#323232;"> |compress >"${OUTPUT}.$_ext"
</span>
INPUT is $HOME in this case.
And if anyone has a solution that works on busybox tar as well…