【问题标题】:Work with ZIP archive at Bash在 Bash 中使用 ZIP 存档
【发布时间】:2014-12-30 04:59:34
【问题描述】:

我需要编写一个简单的 Bash 脚本。如何解压缩包含多个文件的存档(在同一目录中)并获取这些解压缩文件的路径?归档路径在 $1 属性中。以及如何使用 $2 路径将这些文件打包回新存档中?谢谢

更新: 我试试这个: filenames=(zipinfo -1 $1\) extension=".csv" unzip $1 for i in "${filenames[@]}" do : newfilename=${i:0:${#i}-4}$extension #change extension to .csv #...do smth... zip -r $2 $newfilename done 但是存档中有空文件“.csv”(没有名称,olny扩展名)。ъ

UPD2:解决了,因为测试目录名为“abc”,我对最后一个字符“$last”=“/”做了一个比较,结果成功了

【问题讨论】:

    标签: linux bash zip unzip


    【解决方案1】:

    如果 zipfile 是 foo.zip,解压存档,你可以这样做

    unzip foo.zip
    

    并列出你可以做的档案中的文件

    zipinfo -1 foo.zip
    

    【讨论】:

    • 谢谢,但是如何将存档中的文件写入脚本中的变量?
    • 您可以使用var=(`zipinfo -1 foo.zip`) 捕获存档中文件列表的输出,这会将文件存储到$var 数组中。 ${#var[@]} 将为您提供数组中元素的数量,${var[n]} 将让您访问数组的nth 元素。
    • 再等一下,如果存档目录中有文件怎么办?如何正确处理这个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多