次のファイルタイプを除外したい:
これまでのところこれは機能していないようですが、「コマンドラインが正しくありません」というエラーが表示されます。
7z e "-x!*.epub" "-x!*.pdf" "-x!*.html" "-x!*.azw3" "-x!*.mobi" "-x!*.txt" "-x!*.HTML" "-x!*.opf" *
また、二重引用符なしで上記のコマンドを試しました。
here (Windows用)からの情報を使用して上記のコマンドを作成しましたが、Linuxでは機能しないようです。
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' {} \;
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