在 Bash 中解压文件,其中提取的文件夹名称与 zip 文件名称不匹配

在 Bash 中解压文件,其中提取的文件夹名称与 zip 文件名称不匹配

我有一个 shell 脚本,我可以在其中解压一个 zip 文件,其内容将始终是一个文件夹。

在我的代码中,我假设 zip 文件的名称将反映文件夹名称(例如名为测试总是被压缩为测试版)因此,我从 zip 文件中提取了文件夹名称。

我遇到了一个障碍,其中有一个文件夹快照压缩为照片.zip。现在,如果我从 zip 文件中提取文件夹名称,它将是错误的文件夹名称。

我如何才能获得正确的文件夹名称快照解压后 照片.zip

答案1

最好创建自己的目录并使用它,unzip -j以便将档案中的所有文件提取到该目录中。

答案2

找到方法了!

解压缩 -l photos.zip | awk'NR==4{print $4}'| sed's////'

答案3

我总是使用dtrx(执行正确的提取)来满足我的所有解压需求。该脚本会检测压缩格式并使用正确的参数调用正确的程序。我强烈推荐它,并且有一个标志可以将文件解压到与 zip 文件名称相同的文件夹中。

dtrx很可能在你的包管理器中,并且可以省去很多麻烦。

相关内容