我尝试解压缩 zip 文件的特定文件夹的内容。我的 zip 文件结构如下所示:
- 文件夹1
- 文件夹1_1
- 文件1_1
- 文件夹2
- 文件夹3
- 文件1
- 文件2
我只想解压内容文件夹 1 的。
我尝试使用:
unzip -d path_to_unzip/ results.zip 'folder1/*'
不幸的是它创建了一个像这样的结构:
path_to_unzip/folder1/folder_1_1 等...
如何归档以删除不必要的文件夹1?
提前谢谢了!
答案1
如何归档以删除不必要的文件夹1?
正如伊格纳西奥正确指出的那样,unzip
不能。
我会提出这样的建议:
TMPDIR=`mktemp -d` || exit 1
unzip -d ${TMPDIR}/ results.zip 'folder1/*'
mv ${TMPDIR}/folder1/* path_to_unzip/
rm -r ${TMPDIR}
基本上,由于mv
单个文件系统上的文件操作是原子的,例如“几乎”立即执行,因此不会对性能产生真正的影响......只要您/tmp
与目标路径位于同一文件系统上。如果不是,并且 ZIP 文件很大,您应该将其解压到目标文件系统上的临时文件夹中。在这里,我们获取目标目录的父目录:
TMPDIR=`mktemp -p path_to_unzip/.. -d` || exit 1