Answers:
7z
仅在其参数内接受单个存档,但是您传递的通配符将扩展为当前工作目录的全部内容;另一个问题是,参数中的通配符也会扩展,无论是未引用还是双引号。
因此,每个命令只应提取一个归档文件。您应该在最后删除通配符,指定单个归档文件并用引号将参数引起来:
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
吗?介意尝试使用单个存档吗?
如果要排除整个目录(您可能将此扩展文件放在目录中)
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
呢 这对现有答案有什么补充?