web-dev-qa-db-fra.com

7Zip: Comment exclure les types de fichiers?

Je veux exclure les types de fichiers suivants:

  • epub
  • pdf
  • html (majuscule aussi)
  • azw3
  • mobi
  • opf
  • sMS

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.

8
daka

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:

  • bashname__:
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
  • findname__:
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' {} \;
8
kos

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
7
Ron