![tar:如何提取具有许多更新实例的文件的特定版本](https://linux22.com/image/195645/tar%EF%BC%9A%E5%A6%82%E4%BD%95%E6%8F%90%E5%8F%96%E5%85%B7%E6%9C%89%E8%AE%B8%E5%A4%9A%E6%9B%B4%E6%96%B0%E5%AE%9E%E4%BE%8B%E7%9A%84%E6%96%87%E4%BB%B6%E7%9A%84%E7%89%B9%E5%AE%9A%E7%89%88%E6%9C%AC.png)
我有一个更新了很多次的 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