Answers:
unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>
在EL 6上工作正常
"\\"
可以使用(否则,您始终必须记住哪些字符是特殊的转义符)。因此,如果作者的意思是“引用glob字符”(不必要),则这是引用差异。无论哪种方式,单个反斜杠都是错字。
尝试:
unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to
caution: filename not matched: foldername/\*
在运行zip时的文件夹名称在unzip $repozip "$2-master/\*" -d /srv/www/magento/
哪里时,$2
我想从中拉出所有文件和文件夹
"path/*"
。
mv
在需要它们的位置获取文件。
-j
了点。
-j
删除所有路径信息,所有文件进入目标文件夹。有没有办法只删除路径的公共部分?类似于拉链-r
。
现有的两个答案都是正确的,但是指定目标目录有些棘手,应该更好地阐明。
假设/target/root/
是原始解压缩操作的目标目录,例如:
unzip -qq src.zip -d "/target/root/"
然后,/target/root/
即使我们只想提取特定的子目录,也需要使用与目标目录相同的目录,因为解压缩的方式:
unzip -qq src.zip "sub/dir/*" "/target/root/"
毕竟,规则实际上很简单,为-d
option 使用相同的目标根目录。
顺便说一句,该-qq
选项是让拉锁真正安静,可以随时将其删除。