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.