7zip: ¿Cómo excluir tipos de archivos?


9

Quiero excluir los siguientes tipos de archivos:

  • epub
  • pdf
  • html (mayúsculas también)
  • azw3
  • mobi
  • opf
  • TXT

Tengo esto hasta ahora que no parece funcionar, aparece un error que dice "Línea de comando incorrecta".

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

También probé el comando anterior sin comillas dobles.

Creé el comando anterior usando información de aquí (para Windows) pero no parece funcionar en Linux.

Respuestas:


10

7zsolo acepta un único archivo dentro de sus argumentos, pero está pasando un comodín que se expande al contenido completo del directorio de trabajo actual; Otro problema es que también los comodines dentro de los argumentos se expandirán también, ya sea si no están entre comillas o entre comillas dobles.

Por lo tanto, solo debe extraer un único archivo por comando; debe eliminar el comodín al final, especificar un archivo único y comillas simples los argumentos:

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

Sin embargo, para extraer varios archivos a la vez, puede usar varios 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' {} \;

Tengo muchos archivos que deben extraerse, de ahí el uso del comodín al final para extraer TODOS los archivos.
— daka

@sudoman ¿Estás seguro de que esto es compatible 7z? ¿Te importaría probar con un solo archivo?
— kos

Probado, resulta que 7zip en realidad no permite el uso de un comodín para seleccionar múltiples archivos dentro de un directorio dado.
— daka

@Ron Estoy de acuerdo, pero el problema aquí es que OP no puede extraer múltiples archivos a la vez; sin embargo, votó por su publicación
— kos

@sudoman he encontrado otro error en el comando original, además he añadido un par de manera de extraer múltiples archivos a la vez
— Kos

10

De man 7z:

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

Para excluir archivos (o tipos) puede usar el siguiente comando:

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

Aviso en -xrlugar de -x. El rindica recursiva para que pueda coincidir con los archivos excluidos en las jerarquías de carpetas de profundidad

El archivo exclude.txtes una lista separada por retornos de carro como este:

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

-2

Si desea excluir el directorio completo (puede tener este archivo de extensión separado en el directorio)

 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' 

Aquí se ha excluido el directorio de proveedores , vistas y documentos .


1
¿Por qué sudo? ¿Y qué agrega esto a las respuestas existentes?
— muru
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.