7z
solo 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:
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 . -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' {} \;