Warm tip: This article is reproduced from serverfault.com, please click

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

(linux - How to extract last file added to an zip archive)

发布于 2020-12-02 16:46:17

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

第1步解压缩-l /path/to/archive/dec2020.zip给我列出了归档文件列表,我记下了最后一个添加的文件。Latest_file.dat

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

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

Questioner
cb49747
Viewed
0
Raman Sailopal 2020-12-03 06:25:38

试试这个:

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

$()扩展第一个命令,并在第二个命令中使用扩展。我们按日期顺序列出存档条目,并使用尾部,头部和排序来获取所需的行。然后,我们使用awk打印出文件路径(第四个空格分隔的字段)

另外,也可以使用awk系统功能执行解压缩操作。

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