如何在TAR归档时去除path

我有一个文件,其中包含我想用tar存档的文件列表。 我们称之为mylist.txt

它包含:

 /path1/path2/file1.txt /path1/path2/file3.txt ... /path1/path2/file10.txt 

我想要做的是将这个文件存档到一个tarball,但不包括/path1/path2/ 。 目前通过这样做:

 tar -cvf allfiles.tar -T mylist.txt 

在取消存档后保留path。

我试过但不会工作:

 tar -cvf -C /path1/path2 allfiles.tar -T mylist.txt 

它将/path1/path2所有文件归档,即使那些不在mylist.txt中的文件也归档

有没有办法做到这一点?

在你的“提取阶段”,你可以使用像strip-components标志

 tar xvf tarname.tar --strip-components=n 

这将删除文件名的前n个主要组件。 虽然如果你有不同的文件路径组件,这将不适用于所有情况。

如果你想在归档的时候这样做,只有一件事情会浮现出来,我会分享

INPUT:文件列表+完整路径

1)对于每一行,将路径分割出文件名

2)执行cd到该路径并在该文件名上tar

3)重复每一行