Eu encontrei com um comportamento meio estranho de 7z (ou bash, eu não sei ainda).
Com o seguinte script:
#!/bin/bash
find /home/user -type f -name "*.pdf" | cut -c 10- > /home/user/exclude_list2.lst;
lst1=" -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' "
command=$(/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user);
$command
também, as duas últimas linhas podem ser facilmente substituídas por uma única linha:
/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user
Eu também tentei:
command="/usr/bin/7z a $lst1 -v2048M arch0.7z /home/dh ;"
Eu recebo um arquivo 'arch0.7z', mas as pastas .config e .cache ainda estão sendo incluídas, enquanto:
#!/bin/bash
find /home/user -type f -name "*.pdf" | cut -c 10- > /home/user/exclude_list2.lst;
/usr/bin/7z a -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' -v2048M arch0.7z /home/user ;"
gera um arquivo com pastas devidamente excluídas.
Então, eu me pergunto, qual é a diferença entre a linha expandida da variável:
/usr/bin/7z a $lst1 -v2048M arch0.7z /home/user
e o que eu digitei como é:
/usr/bin/7z a -x@/home/user/exclude_list2.lst -xr!'*.config/*' -xr!'*.cache/*' -v2048M arch0.7z /home/user
Existe algum motivo para mudanças tão significativas no fluxo de trabalho 7z?