I create a tarball using tar zcf arhive.tar.gz dir/ and this works ok. Now I wanted to split this into two simple archives, one only for images, the other — for everything else.

It seems that there’s not a trivial and clean way to do this. For tar I can only exclude files, which is unreasonable to exclude every extension except gif, jpg, and png.

To include I have to use find with either –exec or | xargs. This kinda works, but breaks if the filenames have spaces or special characters (apostrophes, quotation marks). So now I have to pipe all the filenames into, say, awk and escape them manually?