Je veux exclure les types de fichiers suivants:
J'ai jusqu'ici ce qui ne semble pas fonctionner, j'ai une erreur disant "Ligne de commande incorrecte".
7z e "-x!*.epub" "-x!*.pdf" "-x!*.html" "-x!*.azw3" "-x!*.mobi" "-x!*.txt" "-x!*.HTML" "-x!*.opf" *
J'ai également essayé la commande ci-dessus sans guillemets doubles.
J'ai créé la commande ci-dessus en utilisant les informations de ici (pour Windows), mais cela ne semble pas fonctionner sous Linux.
7z
n'accepte qu'une seule archive dans ses arguments, mais vous transmettez un caractère générique qui s'étend au contenu complet du répertoire de travail en cours; Un autre problème est que les caractères génériques dans les arguments seront également étendus, qu'ils soient ou non cités.
Vous ne devriez donc extraire qu'une seule archive par commande; vous devez supprimer le caractère générique à la fin, spécifier une archive unique et mettre les arguments entre guillemets:
7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' archive.7z
Pour extraire plusieurs archives à la fois, vous pouvez utiliser plusieurs méthodes:
bash
name__: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
name__: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' {} \;
De man 7z
:
-x[r[-|0]]]{@listfile|!wildcard}
Exclude filenames
Pour exclure un fichier (ou des types), vous pouvez utiliser la commande suivante:
7z a [email protected] backup.7z /whatever/dirs/or/files
Remarquez -xr
au lieu de -x
. Le r
indique récursif afin qu'il puisse correspondre aux fichiers exclus dans les hiérarchies de dossiers profondes
Le fichier exclude.txt
est une liste séparée par des retours à la ligne comme ceci:
*.epub
*.pdf
*.html
*.HTML
*.azw3
*.mobi
*.opf
*.txt