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.

daka
fuente

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' {} \;
kos
fuente
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 [email protected] 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
Ron
fuente
-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 .

manish1706
fuente
1
¿Por qué sudo? ¿Y qué agrega esto a las respuestas existentes?
muru