web-dev-qa-db-ja.com

7Zip:ファイルタイプを除外する方法

次のファイルタイプを除外したい:

  • epub
  • pdf
  • html(大文字も)
  • azw3
  • モビ
  • opf
  • txt

これまでのところこれは機能していないようですが、「コマンドラインが正しくありません」というエラーが表示されます。

7z e "-x!*.epub" "-x!*.pdf" "-x!*.html" "-x!*.azw3" "-x!*.mobi" "-x!*.txt" "-x!*.HTML" "-x!*.opf" *

また、二重引用符なしで上記のコマンドを試しました。

here (Windows用)からの情報を使用して上記のコマンドを作成しましたが、Linuxでは機能しないようです。

8
daka

7zは引数内で1つのアーカイブのみを受け入れますが、現在の作業ディレクトリの完全なコンテンツに展開されるワイルドカードを渡します。別の問題は、引用符で囲まれていない場合や二重引用符で囲まれている場合でも、引数内のワイルドカードも展開されることです。

したがって、コマンドごとに1つのアーカイブのみを抽出する必要があります。末尾のワイルドカードを削除し、単一のアーカイブを指定して、引数を単一引用符で囲む必要があります。

7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' archive.7z

ただし、複数のアーカイブを一度に抽出するには、複数の方法を使用できます。

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

man 7zから:

-x[r[-|0]]]{@listfile|!wildcard}
              Exclude filenames

ファイル(またはタイプ)を除外するには、次のコマンドを使用できます。

7z a [email protected] backup.7z /whatever/dirs/or/files

-xrの代わりに-xに注意してください。 rは再帰的であることを示しているため、深いフォルダー階層の除外ファイルと一致させることができます。

ファイルexclude.txtは、次のように改行で区切られたリストです。

*.epub
*.pdf
*.html 
*.HTML
*.azw3
*.mobi
*.opf
*.txt
7
Ron