如何使用 bash 脚本访问 zip 文件中的文件和目录?

如何使用 bash 脚本访问 zip 文件中的文件和目录?

我希望能够从终端导航到 zip 文件中的文件。我可以在图形用户界面上访问文件和目录,但似乎无法像cd访问其他文件夹那样访问它们。

我尝试过: cd path/to/.zipfile/and/the/things/inside 甚至 vi path/to/.zipfile/and/a/file/inside 但两次都出现错误: no such file or directory即使我确信它们存在。

我不确定解压是如何进行的 - 解压是否会释放里面的所有内容,或者是否可以解压并取出某些内容,然后很容易地将其全部重新压缩。如果可能的话,我宁愿不要释放 zip 文件内的所有内容。

任何帮助,将不胜感激!

答案1

您可以将unzip命令与其-l选项一起使用。 man unzip关于该选项的说明-l

列出存档文件(短格式)。指定文件的名称、未压缩文件大小、修改日期和时间以及指定所有文件的总数都会打印出来。

例如~/sed,你所在的目录中有一个名为我的.zip, 你应该做:

me@me-K52JT:~/sed$ unzip -l my.zip 

输出将是:

  Length      Date    Time    Name
---------  ---------- -----   ----
      752  2019-07-10 20:24   a.txt
      101  2019-07-10 18:33   b.txt
---------                     -------
      853                     2 files

因此,您无需解压即可查看 zip 中的文件列表。unzip(无选项)的默认行为是解压到当前目录。

相关内容