1

我有一个 tar 文件,其中包含同一文件的不同版本,如何提取文件的先前版本之一(不是最后一个版本)?

以下是如何创建测试 tar 文件:

创建一个测试目录

tal@backup:~/tmp$ mkdir test

创建一个测试文件

tal@backup:~/tmp$ echo line 1 > test/test.txt

创建包含测试文件的 tar 文件

tal@backup:~/tmp$ tar -cvf test.tar test/*

返回

test/test.txt

检查更改

tal@backup:~/tmp$ tar -dvf test.tar test/*

返回(还没有)

test/test.txt

更改测试文件

tal@backup:~/tmp$ echo line 2 >> test/test.txt

检查更改

tal@backup:~/tmp$ tar -dvf test.tar test/*

返回(魔术:文件已更改)

test/test.txt
test/test.txt: Mod time differs
test/test.txt: Size differs

更新 tar 文件

tal@backup:~/tmp$ tar -uvf test.tar test/*

返回

test/test.txt

检查更改

tal@backup:~/tmp$ tar -dvf test.tar test/*

返回(两个版本都存在)

test/test.txt
test/test.txt: Mod time differs
test/test.txt: Size differs
test/test.txt

谢谢, 塔尔

4

1 回答 1

2

解决了:

--出现=n

n - [0 .. 版本数]

  • 0 - 最后一个(默认)
  • 1 .. number of version - 是实际的版本数
  • 如果 n 大于版本数,则错误准确

例子

tar -xvf test.tar --occurrence=1 test/test.txt

谢谢, 塔尔

于 2013-10-04T01:20:28.767 回答