以下是我的蚂蚁脚本。
<exec executable="zip" dir="/usr/local/clo/ven/image/manual_bundle/testzip/">
<arg value="-y"/>
<arg value="-r"/>
<arg value="${file.path}"/>
<arg value="*"/>
</exec>
但发生以下错误。
zip-image_binary:
[exec] zip warning: name not matched: *
[exec]
[exec] zip error: Nothing to do! (try: zip -y -r /usr/local/clo/ven/image/a.zip . -i *)
[exec] Result: 12
我的目的是压缩 / usr / local / clo / ven / image / manual_bundle / testzip / 下的所有文件和目录
答案 0 :(得分:2)
使用shell运行命令时,shell会扩展*
glob模式。 zip可执行文件除了文件列表(通常由shell提供)之外根本不需要任何模式。如果您不想使用内置zip
任务,则可以使用apply
而不是exec
来模拟该行为。像这样的东西
<apply executable="zip" parallel="true" relative="true"
dir="/usr/local/clo/ven/image/manual_bundle/testzip/">
<fileset dir="/usr/local/clo/ven/image/manual_bundle/testzip/"/>
<mergemapper to="${file.path}"/>
<arg value="-y"/>
<arg value="-r"/>
<targetfile/>
</apply>
等效zip
任务更简单
<zip destfile="${file.path}">
<fileset dir="/usr/local/clo/ven/image/manual_bundle/testzip/"/>
</zip>