回答:
7z
引数内の単一のアーカイブのみを受け入れますが、現在の作業ディレクトリのコンテンツ全体に展開されるワイルドカードを渡します。別の問題は、引用符で囲まれていないか二重引用符で囲まれている場合、引数内のワイルドカードも同様に展開されることです。
したがって、コマンドごとに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' {} \;
7z
ますか?単一のアーカイブで試してみませんか?
からman 7z
:
-x[r[-|0]]]{@listfile|!wildcard}
Exclude filenames
ファイル(またはタイプ)を除外するには、次のコマンドを使用できます。
7z a -xr@exclude.txt backup.7z /whatever/dirs/or/files
の-xr
代わりに注意してください-x
。r
それは深いフォルダ階層で除外されたファイルを一致させることができますので、再帰を示しています
ファイルexclude.txt
は、次のように改行で区切られたリストです。
*.epub
*.pdf
*.html
*.HTML
*.azw3
*.mobi
*.opf
*.txt
完全なディレクトリを除外する場合(この拡張ファイルはディレクトリで区切られている可能性があります)
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on ~/bkpFile_$(date +"%d_%b_%Y").1.7z /home/ubuntu/projectfile -mx0 '-xr!vendor' '-xr!view' '-xr!documents'
ここでは、vendor、view、documentsディレクトリは除外されています。
sudo
?そして、これは既存の答えに何を追加しますか?