终端osx - 在zip中的zip中按名称提取文件

时间:2015-11-07 09:15:11

标签: macos terminal unzip

我是新手 - 我找不到像我这样的问题,所以希望不是因为太明显......

(使用osx中的终端)我的目标是将当前目录中的特定文件夹解压缩到具有特定名称的两个级别的zip文件,并清除除指定文件夹之外的所有内容。

结构是:

  • 瓦片_ ##。拉链
    1. ASTGTM2_#1#的.zip
      • ASTGTM2_#1_1#_dem.tif
      • ASTGTM2_#1_2#_num.tif
    2. ASTGTM2_#2#的.zip
      • ASTGTM2_#2_2#_dem.tif
      • ASTGTM2_#2_2#_num.tif
    3. ASTGTM2_#3#的.zip ...

在Name_#Number#中,#Number#是一系列用于标识每个文件的字母和数字。

在'伪命令'中:

unzip Tiles_*.zip | unzip ASTGTM2_*.zip | mkdir DEM | mv **/*_dem.tif ./DEM | rm -r But_DEM

我尝试了不同的信念而没有成功......

我做错了什么?

2 个答案:

答案 0 :(得分:0)

也许是这样的:

mkdir tmp DEM
for i in Tiles_*.zip; do unzip $i -d tmp; done
for i in tmp/ASTGTM2_*.zip; do unzip $i -d DEM; done
rm -rf tmp

这使用-d选项指定要将文件解压缩到的目录。

答案 1 :(得分:0)

好的,明白了...感谢使用nneonneo语法,我不知道。

mkdir tmp ZIPs DEMs
for i in Tiles_*.zip; do unzip $i -d ZIPs; done
for i in ZIPs/ASTGTM2_*.zip; do unzip $i -d tmp; done
for i in tmp/ASTGTM2_*/*_dem.tif; do mv $i -d DEMs; done
rm -rf tmp ZIPs *.zip

这会将所有* _dem.tif文件放入新文件夹DEM中,并删除所有其余文件

它仍然看起来有点太长而且不是很优雅,但它确实起作用......