2016-07-07 57 views
0

根据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 

回答

3

引用的手册页很混乱。凡说的--atime-preserve

保留访问时间上倾倒文件[...]

(强调),the current docs

保留访问时间文件,这些文件“阅读

(emphsis补充)。 “转储”一词是指将文件放入tar归档文件中,而不是将文件提取到文件系统。因此,--atime-preserve选项用于归档文件,而不会导致原稿“一次”反映访问。这对于支持进行增量备份(转储)很有用。

在任何情况下,tar都不能设置它提取的文件的一次,这与您的期望相反。它当然不能与原始文件一样,因为tar文件格式甚至不会记录一次。

1

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