根据documentation,tar
能够保留访问时间,但是当我尝试相同时,它没有这样做。有人可以解释一下吗?
$$$:~/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
答案 0 :(得分:3)
引用的手册页令人困惑。它所说的--atime-preserve
保留转储文件[...]
的访问时间
(强调补充),the current docs说
保留读取文件的访问时间。“
(emphsis补充)。 “dumped”一词是指将文件放入tar存档,而不是将文件解压缩到文件系统。因此,tar
选项用于归档文件,而不会导致原始文件反映访问。这对于支持进行增量备份(转储)非常有用。
在任何情况下{{1}}都无法设置它提取的文件的时间,这与您的预期相反。它当然不能给它们与原始文件相同的时间,因为tar文件格式甚至不记录时间。
答案 1 :(得分:1)
您可以在tar format specification中观察到没有atime字段。这只是为了保留原始文件的访问时间。