Я создал файл с различными файлами diff-files.txt
это имеет 6000 + пути к файлам в нем. Теперь я хочу, хотят создать zip на основе тех файлов.
Я знаю, что могу архивировать несколько файлов с:
zip diffedfiles.zip file1 folder1 -r
Но это не будет работать с 6 000 + файлы. Есть ли способ архивировать его на основе содержания diff-files.txt
?
zip diffedfiles.zip {diff-files.txt} -r
Что-то вроде этого?
В Linux вы можете использовать параметр - @:
- @ списки файлов . Если список файлов указан как - @ [Не в MacOS], zip вместо этого берет список входных файлов из стандартного ввода из командной строки. Например,
zip - @ foo
сохранит файлы, перечисленные по одному в строке на stdin, в foo.zip.
Итак, в вашем случае вы должны иметь возможность:
cat diff-files.txt | zip -@ diffedfiles.zip
Есть два метода, которые работают на всех платформах:
1.
zip output.zip -r . -i@filelist.txt
2.
zip -@ - < filelist.txt > output.zip
На эти методы не влияют ограничения на длину командной строки.