7z não está excluindo diretórios do arquivo de exclusão

1

Em um script bash eu quero criar um arquivo com 7z e excluir alguns diretórios. Eu criei um arquivo de exclusão que contém apenas uma entrada:

excl_dir/

Meu script:

#!/bin/bash
archiveName="my_archive"
base="/path/to/base"

7z a -mx=9 -t7z [email protected] "${archiveName}.7z" "${base}/files/*"

O arquivo é criado, mas com o diretório do arquivo de exclusão.

Coisas que eu considerei:

  • O arquivo de exclusão é codificado em UTF-8
  • O arquivo de exclusão está no mesmo diretório do meu script
  • Eu tentei caminhos absolutos e relativos (por exemplo, /path/to/exclude.lst e ./exclude.lst )
  • exclui o formato de arquivo: excl_dir/ , excl_dir/* , nova linha após a entrada

A entrada no arquivo de exclusão está correta? Quando sim, o que mais poderia estar errado?

Editar:

Quando a entrada em exclude.lst é apenas excl_dir , 7z realmente exclui essa pasta. Mas também todo arquivo que tem essa string em seu nome.

    
por twenty7 25.09.2015 / 16:12

1 resposta

0

Parece que 7z só pode excluir padrões e ignora barras finais. Como alternativa, em vez de excluir, passe uma lista dos arquivos que você deseja incluir:

find . -not -path './excl_dir/*' -not -path './excl_dir' > /tmp/include.lst
7z a -mx=9 -t7z -i@/tmp/include.lst foo.7z 

Isso parece um erro em 7z .

    
por 25.09.2015 / 18:02