我有一个更新了很多次的 tar 文件,并且同一文件有多个副本。我发现使用 -x 提取了最新版本的文件。
例如:我有一个 save.tar 文件,其中包含 3 个版本的 a.txt: a.txt version1“这尚未完成”a.txt version2“这是正确的。” a.txt version3“这已损坏。”
如何提取a.txt(版本2)
答案1
大约。 40 年前,有人讨论过是否tar
可以选择指定应该提取的第 n 个事件,但我不确定这是否是一个好主意。
通过标准tar
实现,您可以调用:
tar xvwf archive.tar
然后以交互方式确认提取“正确”版本。
对于star
,还有一个附加方法:
star -xv < archive.tar -find -mtime +some-time-spec -mtime -other-time-spec
并使用两个有用的时间说明符来选择“正确”的版本。
看:http://schilytools.sourceforge.net/man/man1/star.1.html
当然,您需要使用额外的路径名选择器,以防存档文件包含更多不同的文件名。因此,有了标准tar
,这就变成了:
tar xvwf archive.tar a.txt
加上星星就变成了:
star -xv < archive.tar a.txt -find -mtime +some-time-spec -mtime -other-time-spec
或者:
star -xv < archive.tar -find -path a.txt -mtime +some-time-spec -mtime -other-time-spec