无父结构的 Linux tar 归档文件

无父结构的 Linux tar 归档文件

我正在尝试修改我拥有的某个 tar.gz 存档。当我创建 tar 时,它会保留父目录结构,就像 tarball 应该的那样。但是,有没有办法只使用我指定的文件而不是整个目录树来创建 tar 存档?

答案1

禁用递归柏油

POSIX帕克斯(1)有-d启用类似 cpio 的接口,同时允许创建。柏油文件。维基百科的示例:

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

GNU柏油(1)有类似的选择,--无递归. 例如:

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

PS我通常会回到太平洋保险协会(1)在这种情况下。

答案2

有点脏,但是是的:

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

答案3

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

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

要省略文件结构,请进入目录并创建档案:

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

相关内容