Find files and tar them (with spaces)
There could be another way to achieve what you want. Basically,
- Use the find command to output path to whatever files you're looking for. Redirect stdout to a filename of your choosing.
Then tar with the -T option which allows it to take a list of file locations (the one you just created with find!)
find . -name "*.whatever" > yourListOfFiles tar -cvf yourfile.tar -T yourListOfFiles
Use this:
find . -type f -print0 | tar -czvf backup.tar.gz --null -T -
It will:
- deal with files with spaces, newlines, leading dashes, and other funniness
- handle an unlimited number of files
- won't repeatedly overwrite your backup.tar.gz like using
tar -c
withxargs
will do when you have a large number of files
Also see:
- GNU tar manual
- How can I build a tar from stdin?, search for null