为什么atime不会保留在tar中?

时间:2016-07-07 15:05:53

标签: linux bash shell unix tar

根据documentationtar能够保留访问时间,但是当我尝试相同时,它没有这样做。有人可以解释一下吗?

$$$:~/user1/testtar/source> tar --version
tar (GNU tar) 1.15.1

使用旧版时间戳

创建两个文件
$$$:~/user1/testtar/source> touch -t "201501010101" a.txt
$$$:~/user1/testtar/source> touch -t "201501010101" b.txt

$$$:~/user1/testtar/source> ls -ltu
-rw-r--r-- 1 usr usr 0 2015-01-01 01:01 a.txt
-rw-r--r-- 1 usr usr 0 2015-01-01 01:01 b.txt

将其移至另一个文件夹

$$$:~/user1/testtar/source> tar --atime-preserve -cvpf archive.tar *
$$$:~/user1/testtar/source> mv archive.tar ../target/
$$$:~/user1/testtar/source> cd ../target/

提取tar

$$$:~/user1/testtar/target> tar --atime-preserve -xvpf archive.tar
a.txt
b.txt

$$$:~/user1/testtar/target> ls -lt
total 12
-rw-r--r-- 1 usr usr 10240 2016-07-07 15:55 archive.tar
-rw-r--r-- 1 usr usr     0 2015-01-01 01:01 a.txt
-rw-r--r-- 1 usr usr     0 2015-01-01 01:01 b.txt

结果

$$$:~/user1/testtar/target> ls -ltu
-rw-r--r-- 1 usr usr 10240 2016-07-07 15:56 archive.tar
-rw-r--r-- 1 usr usr     0 2016-07-07 15:56 a.txt
-rw-r--r-- 1 usr usr     0 2016-07-07 15:56 b.txt

2 个答案:

答案 0 :(得分:3)

引用的手册页令人困惑。它所说的--atime-preserve

  

保留转储文件[...]

的访问时间

(强调补充),the current docs

  

保留读取文件的访问时间。“

(emphsis补充)。 “dumped”一词是指将文件放入tar存档,而不是将文件解压缩到文件系统。因此,tar选项用于归档文件,而不会导致原始文件反映访问。这对于支持进行增量备份(转储)非常有用。

在任何情况下{{1}}都无法设置它提取的文件的时间,这与您的预期相反。它当然不能给它们与原始文件相同的时间,因为tar文件格式甚至不记录时间。

答案 1 :(得分:1)

您可以在tar format specification中观察到没有atime字段。这只是为了保留原始文件的访问时间。