我有几个zip文件,我想在其他路径中解压缩只有具有某些特性的文件,所以我在linux中执行这个命令:
{
"update": {
"comment": [
{
"add": {
"body": "bug has been fixed"
}
}
]
},
"fields": {
"resolution": {
"name": "namem vakye gere"
}
},
"transition": {
"id": "5"
}
}
但是这次执行会给我以下内容:
unzip -q -o ./path1/*/"*.zip" Key/* -d /path2/
如果我执行另一个选择:
unzip: cannot find or open ./path1/*/*.zip, ./path1/*/*.zip.zip or
./path1/*/*.zip.ZIP.
No zipfiles found.
它只是将其包含在/ path1 / * /中的第一个zip中解压缩,然后返回下一条消息:
unzip -q -o ./path1/*/*.zip Key/* -d /path2/
我需要在路径中使用caution: filename not matched: ./path1/folder/zipFileName1.zip
caution: filename not matched: ./path1/folder/zipFileName2.zip
caution: filename not matched: ./path1/folder/zipFileName3.zip
caution: filename not matched: ./path1/folder/zipFileName4.zip
或类似内容,因为我不知道某个文件夹的名称。
有人能帮帮我吗?谢谢!
答案 0 :(得分:1)
使用for
循环:
$ shopt -s nullglob
$ for f in path1/*.zip path2/*/*.zip ; do [ -r "$f" ] && unzip -l "$f" ; done
或
shopt -s nullglob # see comments
for f in path1/*.zip path2/*/*.zip # all source paths go in here
do
[ -r "$f" ] && unzip -l "$f" # + whatever parameters you need for unzip
done
答案 1 :(得分:0)
您可以使用find
逐个查找zip
个文件和unzip
个文件:
find ./path1 Key -type f -name "*.zip" -exec unzip -q -o -d /path2 {}
请注意,这会从zip
和path1
的所有子目录中解压缩所有Key
个文件。