如何提取添加到 zip 存档的最后一个文件

How to extract last file added to an zip archive

我有一个每月存档,每天都有一个新文件添加到存档中。有时我必须提取最后添加的文件。文件名是随机的,所以我不知道文件名是什么。我用这个过程。

第一步 unzip -l /path/to/archive/dec2020.zip 给我存档中的文件列表,我记下最后添加的文件,即。 latest_file.dat

第2步 解压缩 /path/to/archive/dec2020.zip latest_file.dat 然后我从存档中提取该文件。

我想做的是在一个命令中执行此操作,基本上我想在 Linux 机器上用一个命令提取添加到存档中的最后一个文件。

试试这个:

unzip /path/to/archive/dec2020.zip $(unzip -l /path/to/archive/dec2020.zip | sort -k2 | tail -5 | head -1 | awk '{ print  }')

$() 扩展第一个命令并在第二个命令中使用扩展。我们按日期顺序列出归档条目,并使用 tail、head 和 sort 来获取所需的行。然后我们使用 awk 打印出文件路径(第 4 个 space 分隔字段)

或者,这可以通过 awk 系统函数来执行解压缩。

 unzip -l /path/to/archive/dec2020.zip | sort -k2 | tail -5 | head -1 | awk '{ system("unzip /path/to/archive/dec2020.zip ") }'