"cp -a"(在存档模式下复制)不影响 "Time of last change" 中的 "stat" 命令
"cp -a" (Copy in Archive Mode) does not influence "stat" command in "Time of last change"
我将提供以下脚本来重现问题:
mkdir a
touch a/f
sleep 1
cp -a a b
stat --printf="%u %g %a %z\n" a/f
stat --printf="%u %g %a %z\n" b/f
两次 stat
调用的结果将 不同 timestamps:
1000 100 644 2015-04-05 10:53:35.736399836 +0200
1000 100 644 2015-04-05 10:53:36.740399841 +0200
但是 cp
的手册告诉我们,-a
应该保留时间戳。
我究竟做错了什么?
如何确保时间戳以我可以测试的方式保存在副本中?
我在 Xubuntu 14.04 上试过这个。感谢您的帮助!
Ps(重要):
我只是试图通过 ls
访问时间戳,但我没有相同的行为:
$ ls -l --full-time a/
-rw-r--r-- 1 foo bar 0 2015-04-05 10:53:35.736399836 +0200 f
$ ls -l --full-time b/
-rw-r--r-- 1 foo bar 0 2015-04-05 10:53:35.736399836 +0200 f
我是不是用我的 stat 命令检查了错误的东西?我想通过将文件与备份中的副本进行比较来确定文件是否 "changed"...
stat
打印 3 次不同的时间:
- Access - the last time the file was read
- Modify - the last time the file was modified (content has been modified)
- Change - the last time meta data of the file was changed (e.g. permissions)
这解释了为什么 Change 时间在 a/f
和 b/f
之间不同(元数据已更新),
而 修改 时间相同(文件内容在 cp
时没有改变)。
File: `a/f'
...
Access: 2015-04-05 16:15:22.000000000 +0300
Modify: 2015-04-05 16:15:13.000000000 +0300
Change: 2015-04-05 16:15:13.000000000 +0300
File: `b/f'
...
Access: 2015-04-05 16:15:22.000000000 +0300
Modify: 2015-04-05 16:15:13.000000000 +0300
Change: 2015-04-05 16:19:49.000000000 +0300
我将提供以下脚本来重现问题:
mkdir a
touch a/f
sleep 1
cp -a a b
stat --printf="%u %g %a %z\n" a/f
stat --printf="%u %g %a %z\n" b/f
两次 stat
调用的结果将 不同 timestamps:
1000 100 644 2015-04-05 10:53:35.736399836 +0200
1000 100 644 2015-04-05 10:53:36.740399841 +0200
但是 cp
的手册告诉我们,-a
应该保留时间戳。
我究竟做错了什么?
如何确保时间戳以我可以测试的方式保存在副本中?
我在 Xubuntu 14.04 上试过这个。感谢您的帮助!
Ps(重要):
我只是试图通过 ls
访问时间戳,但我没有相同的行为:
$ ls -l --full-time a/
-rw-r--r-- 1 foo bar 0 2015-04-05 10:53:35.736399836 +0200 f
$ ls -l --full-time b/
-rw-r--r-- 1 foo bar 0 2015-04-05 10:53:35.736399836 +0200 f
我是不是用我的 stat 命令检查了错误的东西?我想通过将文件与备份中的副本进行比较来确定文件是否 "changed"...
stat
打印 3 次不同的时间:
- Access - the last time the file was read
- Modify - the last time the file was modified (content has been modified)
- Change - the last time meta data of the file was changed (e.g. permissions)
这解释了为什么 Change 时间在 a/f
和 b/f
之间不同(元数据已更新),
而 修改 时间相同(文件内容在 cp
时没有改变)。
File: `a/f'
...
Access: 2015-04-05 16:15:22.000000000 +0300
Modify: 2015-04-05 16:15:13.000000000 +0300
Change: 2015-04-05 16:15:13.000000000 +0300
File: `b/f'
...
Access: 2015-04-05 16:15:22.000000000 +0300
Modify: 2015-04-05 16:15:13.000000000 +0300
Change: 2015-04-05 16:19:49.000000000 +0300