没有父结构的Linux tar归档文件

我试图修改我有的某个tar.gz存档。 当我去创buildtar时,它保留了父目录结构,就像tarball应该一样。 但是,是否有一种方法可以仅使用指定的文件而不是整个目录树来创buildtar归档文件?

tar中禁用recursion。

POSIX pax (1)具有-d选项,可以启用类似cpio的界面,同时允许创build.tar文件。 来自维基百科的例子:

find . -depth -print | pax -wd > archive.tar

GNU tar (1)有一个类似的选项–no-recursion 。 从那里的例子:

find dir tests | tar -cf archive -T - --no-recursion

PS我通常会回到cpio (1)在这种情况下。

这有点脏,但是:

 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 

指定文件的完整path将保留树:

 tar cf newarchive.tar /path/to/file1 /path/to/file2 

要省略文件结构,请cd到该目录并创build存档:

 (cd /path/to && tar cf /tmp/newarchive.tar file1 file2)