tar --exclude-vcs-ignores -c /home/kdibble > /tmp/kdibble.tar
According to gnu.org tar 1.34 section 6.4
‘--exclude-vcs-ignores’
Before archiving a directory, see if it contains any of the
following files: ‘cvsignore’, ‘.gitignore’, ‘.bzrignore’, or
‘.hgignore’. If so, read ignore patterns from these files.
The patterns are treated much as the corresponding VCS would treat
them, i.e.:
‘.gitignore’
Contains shell-style globbing patterns. Applies to the directory
where ‘.gitfile’ is located and all its subdirectories.
Any line beginning with a ‘#’ is a comment. Backslash escapes the
comment character.
here is /home/kdibble/.gitignore
#.gitignore for home directory
#
.*
Downloads/
vmware/
#
bin/checkhosts/etc_hosts
bin/checkhosts/hosts
!/.gitignore
**/core
**/*.o
**/*.d
**/*.class
**/a.out
**/binary_data
**/perf_data
**/quotient.txt
After rsync:
$ ls /tmp/backup_test | grep binary_data
$
$ ls /tmp/backup_test | grep "o.d"
$
After tar:
$ tar tf /tmp/kdibble.tar | grep binary_data
home/kdibble/NetBeansProjects/factor/binary_data
$ tar tf /tmp/kdibble.tar | grep "o.d"
home/kdibble/NetBeansProjects/Pell/build/Debug/GNU-Linux-x86/main.o.d
home/kdibble/NetBeansProjects/PollardRho/build/Debug/GNU-Linux/main.o.d
home/kdibble/NetBeansProjects/PollardRho/build/Debug/GNU-Linux-x86/main.o.d
I understand that the documentation says "much as the corresponding
VCS would treat them"
but,
IMHO,
IF they are not going to work the same, don't make it sound as
though they do work
the same or name the command line switch like they do. Especially on
utilities used
for backing up data, where there is an expectation of being able to
restore what
you intended to back up.
For reference the '**' glob was apparently introduced with Bash 4 in
2009,
so it isn't something new.