我有一个文件,其中包含我想用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)重复每一行