提取zip文件内容并动态重命名该目录

Spi*_*dey 6 linux bash shell directory-structure unzip

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

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

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

以下是我试过的......

unzip A-1.0.zip -d ~/A
Run Code Online (Sandbox Code Playgroud)

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

这将文件解压缩 ~/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手动重命名.

Ale*_*ROS 5

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

ln -s A A-1.0
unzip A-1.0.zip
rm A-1.0
Run Code Online (Sandbox Code Playgroud)


Géz*_*rök 2

解压缩手册页可以归结为:

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
Run Code Online (Sandbox Code Playgroud)

  • 它不起作用。这只是将所有内容提取到 ~/A/ 中。解压后的目录如下所示~/A/A-1.0/[contents] (2认同)