Впрочем решили проблему записывая вывод в lst файл, затем читая его с помощью 7z.
Но, есть небольшая проблема которая нас так же интересует, что делать с -w? Ведь он похоже не работает для input(compress) операций, верно?
Можно ли 7z задать working directory из которой он будет генерировать пути?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Честно говоря я не вижу в использовании -w при archivate (input) операциях, это никак не сломает обратную совместимость, тебе лишь нужно добавить обработку и для входных символов тоже. Ну не знаю, дело твоё конечно, но лишним бы не было явно. tar умеет, почему бы 7z'у не поддерживать подобные вещи? output ведь поддерживаем?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You might need to add a -s [number] argument to xargs before the 7z argument if you have a lot of files being read from stdin, or else xargs will call 7z multiple times, processing a different batch of files each time, which would create a bunch of extra work for 7z. See man 1 xargs for more information on how to use xargs.
You could also use the -exec option in find to do something similar:
mkdir 123 && cd 123 touch 123.txt touch 1234.txt touch 5.txt cd ..
find ./123 -type f \( -iname '*.txt' -o -iname '*.txt1' \) -printf "%f\0" | tar -czf ./downloaded/$archive_title.tgz -C ./123 --null -T -;
Works.
doesn't
with
-si
it's just create file based on archive_title via output by find.Is there any options to provide file's list to input?
Last edit: Ter Tar 2020-03-28
В общем имеется ли возможность, не занимаясь ерундой передать 7zip список файлов для архивации?
@ipavlov
Впрочем решили проблему записывая вывод в lst файл, затем читая его с помощью 7z.
Но, есть небольшая проблема которая нас так же интересует, что делать с -w? Ведь он похоже не работает для input(compress) операций, верно?
Можно ли 7z задать working directory из которой он будет генерировать пути?
You can change current directory before calling 7z.
That's not nice idea. Coz that's iterating, we can change dir everytime when we need to switch, it's better if we could set search path via params...
Честно говоря я не вижу в использовании -w при archivate (input) операциях, это никак не сломает обратную совместимость, тебе лишь нужно добавить обработку и для входных символов тоже. Ну не знаю, дело твоё конечно, но лишним бы не было явно. tar умеет, почему бы 7z'у не поддерживать подобные вещи? output ведь поддерживаем?
7z a -aoa -m0=LZMA2:a=1:d=1536m:mf=hc4:fb=273:mc=20000:lc=0:lp=0:pb=0 -mx=9 -myx=10 -mf=on -mhc=on -mhe=on -mmt=4 -mmtf=on -mtm=on -mtc=on -mta=on -mtr=off -ms=on test.7z @test.lst;
Also i have one more question, why when we using -mtr it's throws E_INVALIDARG?
btw it's exists
https://i.imgur.com/xYzM1Im.png
-mtr
is new switch and it is not supported by old 7-Zip.This sounds like the kind of usecase that the unix program
xargs
was meant for. Try the following:You might need to add a
-s [number]
argument to xargs before the7z
argument if you have a lot of files being read from stdin, or elsexargs
will call7z
multiple times, processing a different batch of files each time, which would create a bunch of extra work for7z
. Seeman 1 xargs
for more information on how to use xargs.You could also use the
-exec
option in find to do something similar:Last edit: halo117nachos 2020-12-29