7zip: como excluir tipos de arquivo?


9

Desejo excluir os seguintes tipos de arquivo:

  • epub
  • pdf
  • html (maiúsculas também)
  • azw3
  • mobi
  • opf
  • TXT

Eu tenho isso até agora que parece não funcionar, eu recebo um erro dizendo "Linha de comando incorreta".

7z e "-x!*.epub" "-x!*.pdf" "-x!*.html" "-x!*.azw3" "-x!*.mobi" "-x!*.txt" "-x!*.HTML" "-x!*.opf" *

Eu também tentei o comando acima sem aspas duplas.

Eu criei o comando acima usando informações daqui (para Windows), mas ele não parece funcionar no Linux.

Respostas:


10

7zaceita apenas um único arquivo dentro de seus argumentos, mas você está passando um curinga que se expande para todo o conteúdo do diretório de trabalho atual; Outra questão é que também os curingas nos argumentos também serão expandidos, se não estiverem entre aspas ou entre aspas.

Portanto, você deve extrair apenas um único arquivo por comando; você deve remover o curinga no final, especificar um único arquivo e aspas simples os argumentos:

7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' archive.7z

Para extrair vários arquivos de uma vez, no entanto, você pode usar vários métodos:

  • bash:
for archive in *.7z; do 7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' "$archive"; done
  • find:
find . -maxdepth 1 -type f -iname "*.7z" -exec 7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' {} \;

Eu tenho muitos arquivos que precisam ser extraídos, daí o uso do curinga no final para extrair TODOS os arquivos.
daka

@sudoman Tem certeza de que isso é suportado por 7z? Importa-se de tentar com um único arquivo?
kos

Testado, o 7zip na verdade não permite o uso de um curinga para selecionar vários arquivos em um determinado diretório.
daka

@ Ron, eu concordo, mas o problema aqui é que o OP não pode extrair vários arquivos ao mesmo tempo; no entanto, votou positivamente na sua postagem
kos

@sudoman eu encontrei outra falha em seu comando original, além de eu adicionei um par de maneira de extrair vários arquivos de uma só vez
kos

10

De man 7z:

-x[r[-|0]]]{@listfile|!wildcard}
              Exclude filenames

Para excluir arquivo (ou tipos), você pode usar o seguinte comando:

7z a -xr@exclude.txt backup.7z /whatever/dirs/or/files

Observe em -xrvez de -x. O rindica recursivo para que ele possa corresponder arquivos excluídos em hierarquias profundas de pastas

O arquivo exclude.txté uma lista separada por retornos de carro como este:

*.epub
*.pdf
*.html 
*.HTML
*.azw3
*.mobi
*.opf
*.txt

-2

Se você deseja excluir o diretório completo (você pode ter esse arquivo de extensão separado no diretório)

 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on ~/bkpFile_$(date +"%d_%b_%Y").1.7z /home/ubuntu/projectfile -mx0 '-xr!vendor' '-xr!view' '-xr!documents' 

Aqui, o diretório de fornecedor , exibição e documentos foi excluído.


1
Por que sudo? E o que isso acrescenta às respostas existentes?
Muru
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.