Сохранение архива Tar, которое принимает входные данные из списка файлов

У меня есть файл, содержащий список файлов, которые я хочу архивировать с помощью tar. Позвольте называть его mylist.txt

Он содержит:

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

Есть ли способ, которым я могу выдавать команду TAR, которая принимает mylist.txt как вход? Что-то вроде

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

Таким образом, это похоже на то, что я выдаю эту команду:

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

Ответ 1

Да:

tar -cvf allfiles.tar -T mylist.txt

Ответ 2

Предполагая, что GNU tar (так как это Linux), опция -T или --files-from - это то, что вы хотите.

Ответ 3

Вы также можете использовать имена файлов, которые могут быть полезны:

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

Ответ 4

Некоторые версии tar, например, версии по умолчанию на HP-UX (я тестировал 11.11 и 11.31), не включайте параметр командной строки для указания списка файлов, поэтому для этого необходимо сделать достойный подход:

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

Ответ 5

В Solaris вы можете использовать параметр -I для чтения имен файлов, которые вы обычно указываете в командной строке из файла. В отличие от командной строки, это может создавать архивы tar с сотнями тысяч файлов (только что сделал).

Таким образом, пример будет читать

tar -cvf allfiles.tar -I mylist.txt

Ответ 6

Для меня в AIX он работал следующим образом:

tar -L List.txt -cvf BKP.tar

Ответ 7

В OpenBSD с -I есть -I и строки, которых нет в списке файлов...