Tar归档,从文件列表中获取input

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

它包含:

 file1.txt file2.txt ... file10.txt 

有没有一种方法可以发出TAR命令,将mylist.txt作为input? 就像是

 tar -cvf allfiles.tar -[someoption?] mylist.txt 

这样就好像我发出这个命令一样:

 tar -cvf allfiles.tar file1.txt file2.txt file10.txt 

是:

 tar -cvf allfiles.tar -T mylist.txt 

假设GNU tar(因为这是Linux),- -T--files-from选项就是你想要的。

您还可以input可能有用的文件名:

 find /path/to/files -name \*.txt | tar -cvf allfiles.tar -T - 

某些版本的tar(例如HP-UX上的默认版本(我testing过11.11和11.31))不包含用于指定文件列表的命令行选项,因此一个体面的解决方法是执行此操作:

 tar cvf allfiles.tar $(cat mylist.txt) 

在Solaris上,可以使用选项-I从文件中读取通常在命令行上声明的文件名。 与命令行相比,这可以创build数十万个文件的tar档案(就这样做了)。

所以这个例子会读

 tar -cvf allfiles.tar -I mylist.txt 

对于AIX来说,它的工作原理如下:

 tar -L List.txt -cvf BKP.tar