首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解压zip文件内容并动态重命名目录

问解压zip文件内容并动态重命名目录
EN

Stack Overflow用户
提问于 2014-11-06 14:01:04
回答 3查看 9.5K关注 0票数 8

我有一个使用Play Framework创建的应用程序zip文件。它将创建名为A-1.0.zip的zip文件。此zip文件包含名为A-1.0的目录。(1.0根据版本的不同而变化)

我想解压zip文件并将文件夹从A-1.0重命名为A,这样我的应用程序init.d脚本就可以找到启动该应用程序的目录。这应该使用shell脚本动态完成。

有没有办法可以将所有zip文件解压缩到A文件夹中,而不是解压缩到A-1.0并重命名??请帮帮我!

下面是我尝试过的.

代码语言:javascript
复制
unzip A-1.0.zip -d ~/A

(我知道我这样做是非常愚蠢的!)

这会将文件解压缩到~/A/A-1.0/[contents]中

我需要将所有内容提取到~/A中,而不是~/A/A-1.0/中。我不知道如何使用命令行执行此操作。

我的init.d脚本搜索~/A/bin/A -Dhttp.port=6565 -Dconfig.file=~/A/conf/application.conf来开始播放!应用程序。

要使此脚本正常工作,我将所有内容解压缩到A-1.0中,然后使用mv ~/A-1.0 ~/A手动重命名。

EN

回答 3

Stack Overflow用户

发布于 2017-07-20 16:55:01

我没有找到任何特定的解压选项来自动执行此操作,但我设法通过创建一个临时符号链接来实现此目标,以便以这种方式人为地重定向解压的文件

代码语言:javascript
复制
ln -s A A-1.0
unzip A-1.0.zip
rm A-1.0
票数 5
EN

Stack Overflow用户

发布于 2014-11-06 15:51:23

从unzip man page可以归结为:

代码语言:javascript
复制
unzip A-1.0.zip 'A-1.0/*' -d /the/output/dir
      ^         ^
      |         |
      |         +- files to extract (note the quotes: unzip shall parse the wildcard instd of sh)
      +- The archive
票数 2
EN

Stack Overflow用户

发布于 2018-04-06 13:20:29

编辑:此答案不保留子目录。如果用户没有或不需要子目录结构,那么它工作得很好。

我发现您可以将@géza-török的答案与@david-c-rankin (在问题下面的评论中)提到的-j选项结合起来。这就引出了unzip -j A-1.0.zip 'A-1.0/*' -d /the/output/dir。这将只处理A-1.0/中的文件,并将它们直接输出到给定的输出目录中。

来源:https://linux.die.net/man/1/unzip (查看-j)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26772701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档