I'm trying to modify a certain tar.gz archive I have. When I go to create the tar, it retains the parent directory structure, as a tarball should. However, is there a way to simply create a tar archive with just the files I specifiy, rather than the entire directory tree?
Asked
Active
Viewed 1,587 times
3 Answers
3
Disabling recursion in tar.
POSIX pax(1) has -d option which enables cpio-like interface while allowing to create .tar files. Example from Wikipedia:
find . -depth -print | pax -wd > archive.tar
GNU tar(1) has an analogous option, --no-recursion. Example from there:
find dir tests | tar -cf archive -T - --no-recursion
P.S. I usually fall back to cpio(1) in such cases.

yrk
- 2,487
- 17
- 22
1
It's a little dirty, but yes:
michael@choad:~$ tar cf - -C ~/scratch packing_slip_411.pdf -C ~/bin/df_linux/ README.linux | tar tvf -
-rw-r--r-- michael/users 37686 2012-03-30 15:09 packing_slip_411.pdf
-rwx------ michael/users 1364 2012-03-30 07:27 README.linux

MikeyB
- 39,291
- 10
- 105
- 189
-1
Specifying the full path of a file will preserve the tree:
tar cf newarchive.tar /path/to/file1 /path/to/file2
To omit the file structure, cd to the directory and create the archive:
(cd /path/to && tar cf /tmp/newarchive.tar file1 file2)

r_2
- 335
- 3
- 9