создайте zip на основе содержания списка файлов

Я создал файл с различными файлами diff-files.txt это имеет 6000 + пути к файлам в нем. Теперь я хочу, хотят создать zip на основе тех файлов.

Я знаю, что могу архивировать несколько файлов с:

zip diffedfiles.zip file1 folder1 -r

Но это не будет работать с 6 000 + файлы. Есть ли способ архивировать его на основе содержания diff-files.txt?

zip diffedfiles.zip {diff-files.txt} -r

Что-то вроде этого?

3
задан 16 December 2014 в 11:41
3 ответа

В Linux вы можете использовать параметр - @:

- @ списки файлов . Если список файлов указан как - @ [Не в MacOS], zip вместо этого берет список входных файлов из стандартного ввода из командной строки. Например,

  zip - @ foo
 

сохранит файлы, перечисленные по одному в строке на stdin, в foo.zip.

Итак, в вашем случае вы должны иметь возможность:

cat diff-files.txt | zip -@ diffedfiles.zip
8
ответ дан 3 December 2019 в 04:49

Понятно:

zip diffedfiles.zip $(cat diff-files.txt) -r
3
ответ дан 3 December 2019 в 04:49

Есть два метода, которые работают на всех платформах:

1.

zip output.zip -r . -i@filelist.txt

2.

zip -@ - < filelist.txt > output.zip

На эти методы не влияют ограничения на длину командной строки.

0
ответ дан 3 December 2019 в 04:49

Теги

Похожие вопросы